[Mesa-dev] [PATCH 17/19] glx: Replace DRI2SwapBuffers() custom protocol with XCB.
Chad Versace
chad.versace at linux.intel.com
Fri Sep 28 16:12:28 PDT 2012
> + 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.
Anyway, roll-our-own-X-protocol needs to die.
Reviewed-by: Chad Versace <chad.versace at linux.intel.com>
More information about the mesa-dev
mailing list