<p dir="ltr">Well, I find your arguments convincing. For whatever my opinion is worth. :-) </p>
<p dir="ltr">On Apr 24, 2014 1:03 PM, "Chad Versace" <<a href="mailto:chad.versace@linux.intel.com">chad.versace@linux.intel.com</a>> wrote:<br>
> On Thu, Apr 24, 2014 at 09:17:50AM -0700, Jamey Sharp wrote:<br>
> > On Apr 23, 2014 1:36 PM, "Chad Versace" <<a href="mailto:chad.versace@linux.intel.com">chad.versace@linux.intel.com</a>> wrote:<br>
> > > As for eglSwapBuffers being synchronized to vertical retraces, again it<br>
> > > is on all platforms I've used.<br>
> ><br>
> > Modulo bugs, presumably, since it certainly isn't reliably synchronized in X<br>
> > right now. :-)<br>
><br>
> How is it not synchronized in X? And how unreliabe is its unreliability?<br>
> Please tell. This storm cloud troubles my soul.</p>
<p dir="ltr">I should qualify, I've only been testing glX, not EGL, but since the bugs I'm seeing look to me like they're in the user space drivers on the X server side, I expect them to show up when using either client API.</p>

<p dir="ltr">You can try the Piglit patch series that Theo and I posted yesterday and see whether you get any better results than I do. Our earlier ad-hoc tests suggested that none of the open source drivers do well at OML_sync_control, using either DRI2 or Present. Our Piglit tests confirm that result for current git master of xserver and xf86-video-intel using either UXA or SNA with either DRI2 or DRI3.</p>

<p dir="ltr">I speculate that only some of the code paths are buggy, and it depends on whether the driver decides to use page flipping, blits, or exchanges, which in turn follows complicated rules I don't understand. One symptom is that often the WaitForSbc or WaitForMsc call will return 0 for both UST and MSC, which occurs when the driver calls DRI2SwapComplete with zeroes, and that tends to correlate with bad behavior. But it isn't a cause or a reliable effect of the bugs.</p>

<p dir="ltr">I recommend trying without a compositor first as compositing managers seem to make the situation quite a bit worse, though under compositing it's unreliably unreliable. :-\ Without a compositor, stable results from the Piglit tests. With a compositor, sometimes both the compositor and the GL client crash simultaneously, and the rest of the time I can't predict which tests will fail.</p>

<p dir="ltr">> > Ooh, and does Mesa set EGL_MAX_SWAP_INTERVAL == 0 if vblank_mode is 0?<br>
><br>
> Yep. This code block, present in the X11 and Wayland code, does it. I verified<br>
> it actually does it job with my wfl-swapinterval toy.<br>
><br>
>    switch (vblank_mode) {<br>
>...</p>
<p dir="ltr">Ah, very good!</p>
<p dir="ltr">Jamey</p>