Description[wip] Ozone: Add GPU process side framework for external compositors.
Hi, I am Robert Carr, and I am reaching out on behalf of the Mir team at
Canonical. Recently I have been working on an Ozone-Mir implementation.
This is not a suggestion to merge the attached branch, but at the suggestion
of Robert Kroeger I am creating this issue on codereiew
to centeralize discussion.
A high level introduction is available on G+:
https://plus.google.com/104358235952874475094/posts/cPmZofCRSA3
As expanded upon on Google+, Ozone-Mir is based off of the excellent
work on Ozone-Wayland. Our initial study revealed there would be a
huge amount of code duplication between a standalone Ozone Wayland
and Ozone Mir, for the purpose of example, non exhaustive list:
* Establishing/Managing Host/GPU Process Control Channel
* Defining Window Management Protocol over Control Channel
* Aura WindowTreeHost delegation
etc…
to build Ozone-Mir I have established a much smaller set of interfaces purely on
the GPU process side which should be enough to implement an ozone backend for
an external EGL compositor with linux style input (Wayland, Mir, X11?, SurfaceFlinger??).
You can see the main interfaces https://github.com/racarr-ubuntu/ozone-mir/tree/master/ui/egl
They are of course quite comparable to any other toolkit->windowing system abstraction layer.
I expect Ozone-DRM and ChromeOS may have different requirements. For the purposes of
Ozone Mir and Wayland though we would like to work to get the common components
merged upstream under some ' ozone::EGL::WindowingSystem' kind of namespace,
and the small GPU side interfaces exposed, so that Ozone Mir and Wayland to happily
coexist without excessive duplication.
To the Chromium and Ozone-Wayland maintainers: What are our steps going
forward and how can we assist in preparing the code for upstream Chromium.
If anyone would like to touch base off list, we can be reached in #ubuntu-mir
on irc.freenode or mir-devel@lists.ubuntu.com
Thanks,
Robert
Patch Set 1 : Dummy Patchset - See Github # |