<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>