<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Rendering sometimes halts in waiting for back buffers with dri3 & xwayland"
href="https://bugs.freedesktop.org/show_bug.cgi?id=81139#c11">Comment # 11</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Rendering sometimes halts in waiting for back buffers with dri3 & xwayland"
href="https://bugs.freedesktop.org/show_bug.cgi?id=81139">bug 81139</a>
from <span class="vcard"><a class="email" href="mailto:stu_dby@126.com" title="Boyan Ding <stu_dby@126.com>"> <span class="fn">Boyan Ding</span></a>
</span></b>
<pre>I found the following things:
1. When things are right the window_msc argument of present_pixmap is always a
small number (often 1 or sometimes 2), but when things starts to go wrong, it
can be very big.
2. When things go wrong (window_msc is very big), present_pixmap is directly
originated in dri3_swap_buffers in dri3_glx.c in mesa, which is called by
glXSwapBuffers like the following:
(*pdraw->psc->driScreen->swapBuffers)(pdraw, 0, 0, 0, flush)
^
3. target_msc (will be window_msc in present_pixmap) in dri3_swap_buffers is
originally 0 (note the mark on the previous line). So it is re-calculated
according to the following expression:
target_msc = priv->msc + priv->swap_interval * (priv->send_sbc -
priv->recv_sbc);
and priv->msc is guilty of the big value (Seems that it should be 0 or 1
normally).
How can priv->msc change?</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>