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?
See bug 97353 for initial discussion.
This is something I expect we'll discuss a lot more at XDC in Helsinki, at the end of September.
(In reply to Daniel Stone from comment #2) > This is something I expect we'll discuss a lot more at XDC in Helsinki, at > the end of September. Argh, wrong bug - that was meant for #97380. This one is not blocked on XDC.
I submitted a protocol implementing this, as well as support for Mutter and Mesa: https://lists.freedesktop.org/archives/wayland-devel/2017-September/035080.html
Wrong bug again, sorry Tomek. :\
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/wayland/wayland/issues/30.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.