[Mesa-dev] [PATCH 17/19] glx: Replace DRI2SwapBuffers() custom protocol with XCB.
eric at anholt.net
Mon Oct 1 15:01:05 PDT 2012
Chad Versace <chad.versace at linux.intel.com> writes:
>> + swap_buffers_cookie =
>> + xcb_dri2_swap_buffers_unchecked(c, pdraw->xDrawable,
>> + target_msc_hi, target_msc_lo,
>> + divisor_hi, divisor_lo,
>> + remainder_hi, remainder_lo);
>> + /* Immediately wait on the swapbuffers reply. If we didn't, we'd have
>> + * to do so some time before reusing a (non-pageflipped) backbuffer.
>> + * Otherwise, the new rendering could get ahead of the X Server's
>> + * dispatch of the swapbuffer and you'd display garbage.
>> + *
>> + * We use XSync() first to reap the invalidate events through the event
>> + * filter, to ensure that the next drawing doesn't use an invalidated
>> + * buffer.
>> + */
>> + XSync(pdraw->psc->dpy, False);
>> + swap_buffers_reply =
>> + xcb_dri2_swap_buffers_reply(c, swap_buffers_cookie, NULL);
>> + ret = merge_counter(swap_buffers_reply->swap_hi,
>> + swap_buffers_reply->swap_lo);
>> + free(swap_buffers_reply);
> Will this sync harm performance for artificial benchmarks? I'm asking because
> this hunk reminds me of Oliver's comments that Dante was slower on EGL than GLX
> perhaps due to extra X roundtrips.
DRI2SwapBuffers had a round-trip built into it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 197 bytes
Desc: not available
More information about the mesa-dev