[Mesa-dev] [RFC PATCH] dri3: Sync after buffer swaps with glXSwapBuffers

Thomas Hellstrom thellstrom at vmware.com
Mon Jun 19 17:44:34 UTC 2017


On 06/19/2017 07:26 PM, Eric Anholt wrote:
> Thomas Hellstrom <thellstrom at vmware.com> writes:
>
>> Applications calling glXSwapBuffers should be able to expect that any X
>> rendering submitted after the call to glXSwapBuffers returns should be ordered
>> with respect to the glXSwapBuffers call. (For example piglit reading out from
>> a window). This appears not to be the case at least with the current server
>> side present extension implementation.
>>
>> Fixes piglit glx-multithread-texture on svga/vmwgfx.
> I don't believe that's true.  From the 1.4 spec:
>
> "glXSwapBuffers is in the X stream if and only if the display and
> drawable are not those belonging to the calling thread’s current
> context;"
>
> So if you want to sync X rendering after swap, you need glXWaitForGL().

Hmm. You're right.

Then I guess we need to fix both dri3's glXWaitGL to include the wait 
for sbc and in addition fix piglit to call glXWaitGL.
Another complication is in the glXWaitGL man page, which states that 
glFinish can be used instead of glXWaitGL and I guess that might be a 
bit problematic.

/Thomas




More information about the mesa-dev mailing list