Provide zwp_linux_explicit_synchronization_unstable_v1
Resources
- Protocol xml: zwp_linux_explicit_synchronization_unstable_v1
- See mailing thread about its usefulness in modern graphics: Link
- wlroots WIP implementation: Link
Server plan
Three classes representing protocol objects:
- LinuxExplicitSynchronizationV1 (global)
- LinuxSurfaceSynchronizationV1
- LinuxBufferReleaseV1
LinuxSurfaceSynchronizationV1
Writing these alone looks rather simple. But the integration of LinuxSurfaceSynchronizationV1 with Surface might be difficult. On commit we want the wl_buffer to not yet be sampled.
Wrapland might only provide a getter on the Buffer object to tell the compositor if this Buffer has a fence. Then the compositor must listen for the fd signal (this task could be encapsulated in the Buffer object).
LinuxBufferReleaseV1
The events of LinuxBufferReleaseV1 can likely be processed in the Buffer class. Not sure about the fenced_release. What's the advantage to immediate_release if the client can not expect it to always be this one? Also should it be sent at the same time wl_buffer.release is sent?