Chad Versace <chad.vers...@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.
pgpLCogxqHvob.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev