Tomeu Vizoso <to...@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 buffer. Regards, - Neil _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel