Wayland buffer synchronisation is undocumented
Submitted by Tomek Bury
Assigned to Wayland bug list
Wayland silently assumes implicit cross-process fencing on shared buffers. This assumption goes beyond EGL/GLES core spec and any Wayland extension but is not specified anywhere.
It would be much easier for driver or compositor authors to have very clearly spelled out requirements and guarantrees, especially around shared resources.
Current mechanism, as far as I understand it, looks rather weird: EGL is responsible for handing a buffer over from client to compositor, but EGL is not involved (and completely unaware) of handing buffer back to client.
As it's pretty much guaranteed that drivers and compositors will come from completely unrelated parties and can be mixed and matched, implicit assumptions in this area must lead to interoperability issues and a lot of confusion as to what is valid or invalid behaviour.
Could you clearly document responsibilities and guarantees of both driver and compositor in buffer management, including CPU-GPU synchronisation please?