[PATCH mesa v4] wayland: Add support for eglSwapInterval

Neil Roberts neil at linux.intel.com
Wed Oct 30 09:44:13 CET 2013

Tomeu Vizoso <tomeu at tomeuvizoso.net> writes:

> What I fail to see is why a single sync should be enough, as we don't
> know when the GPU will signal that it's done with the buffer that we
> are waiting to be released.

You are right that we don't know when the GPU will release the buffer.
However we are not waiting for that. We are assuming that the GPU is
only going to hold on to at most 2 buffers. In the DRM / Mesa case it
needs to hold on to these because one will be used for scanout and one
will be queued for the page flip. If we attach a third buffer then it
will be held by the compositor as a queue for the next flip. We are
assuming it won't have given this buffer to the GPU. Therefore if we
attach a fourth buffer it is easy for the compositor to immediately
release its lock on the third buffer and replace it with the fourth. So
we can assume that the fourth attach will always generate an immediate
release event. Sending a sync request will ensure that we always get
this release event. So if we have four buffer slots we can assume that
one of the attaches will always generate an immediate release event.

In the non-fullscreen case where we don't really need to wait for the
GPU, we only need 2 slots because the compositor will only lock one

- Neil

More information about the wayland-devel mailing list