[Piglit] [PATCH 2/2] EGL_CHROMIUM_get_sync_values: Add conformance test.

Jamey Sharp jamey at minilop.net
Thu Apr 24 16:34:48 PDT 2014

Well, I find your arguments convincing. For whatever my opinion is worth.

On Apr 24, 2014 1:03 PM, "Chad Versace" <chad.versace at linux.intel.com>
> On Thu, Apr 24, 2014 at 09:17:50AM -0700, Jamey Sharp wrote:
> > On Apr 23, 2014 1:36 PM, "Chad Versace" <chad.versace at linux.intel.com>
> > > As for eglSwapBuffers being synchronized to vertical retraces, again
> > > is on all platforms I've used.
> >
> > Modulo bugs, presumably, since it certainly isn't reliably synchronized
in X
> > right now. :-)
> How is it not synchronized in X? And how unreliabe is its unreliability?
> Please tell. This storm cloud troubles my soul.

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.

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.

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.

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.

> > Ooh, and does Mesa set EGL_MAX_SWAP_INTERVAL == 0 if vblank_mode is 0?
> Yep. This code block, present in the X11 and Wayland code, does it. I
> it actually does it job with my wfl-swapinterval toy.
>    switch (vblank_mode) {

Ah, very good!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20140424/cf66f7f5/attachment.html>

More information about the Piglit mailing list