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.

Attachment: pgpLCogxqHvob.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to