Bug 52930 - glXWaitX is often ineffective
Summary: glXWaitX is often ineffective
Status: RESOLVED MOVED
Alias: None
Product: Mesa
Classification: Unclassified
Component: GLX (show other bugs)
Version: 8.0
Hardware: Other All
: medium normal
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-30 01:03 UTC by Karl Tomlinson
Modified: 2019-09-18 17:44 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

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.