Bug 52930

Summary: glXWaitX is often ineffective
Product: Mesa Reporter: Karl Tomlinson <bugs.freedesktop>
Component: GLXAssignee: mesa-dev
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium    
Version: 8.0   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Karl Tomlinson 2012-07-30 01:03:55 UTC
The description of glXWaitX says "X rendering calls made prior to glXWaitX are
guaranteed to be executed before GL rendering calls made after glXWaitX", but
glXWaitX is currently a no-op when direct rendering unless the current
drawable is a window and single buffered.  In situations where
dri2_copy_drawable is used it performs the required X server round trip.

At one point in history glXWaitX called XSync with direct rendering:
http://cgit.freedesktop.org/mesa/mesa/commit/src/glx/x11?id=63b51b5cf17ddde09b72a2811296f37b9a4c5ad2

It seems XSync should be used when dri2_copy_drawable is not necessary.
There is some discussion in this thread:
http://lists.freedesktop.org/archives/mesa-dev/2011-June/008124.html

Perhaps LastKnownRequestProcessed NextRequest can be used to determine whether
the XSync is necessary.  They could also detect that the XSync is not necessary after dri2_copy_drawable.

glxWaitGL looks like a no-op in similar situations.
I wonder whether at least a glFlush is required here.

applegl and indirect contexts appear to support glXWaitX/GL.
Comment 1 GitLab Migration User 2019-09-18 17:44:18 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/85.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.