Canonical last week posted 15 patches so Mesa could support their Mir Display Server
and specifically the Mir EGL platform. Those patches haven't received many comments from upstream Mesa developers, but there were more than 200 comments in our forums
. Over the night, Canonical has posted X.Org Server patches for supporting XMir plus the open-source driver patches so it can handle XMir with nested compositing.
XMir is the X11 compatibility layer so that X11-dependent games and applications can run on the Ubuntu Mir Display Server by being routed through this modified X.Org Server and onto Mir proper. This is similar to XWayland and is how the Unity 7 desktop will run on Mir for the upcoming Ubuntu 13.10 release.
The first patch by Christopher James Halse Rogers of Canonical since last night is for adding XMir support and its Xorg-nested-in-Mir helper extension. Rogers writes in his mailing list post
, "This is missing too much functionality to be usefully appiled [sic], but the skeleton is here and the APIs it relies on are sufficiently stable. Sending to the list for extra visibility and for preliminary comments. We're sufficiently different to Wayland to make sharing code difficult, but I think there's probably some scope for common code in output handling, and possibly in GLX's interaction with the underlying compositor."
The XMir patch for the xorg-server is about 1,251 lines of new code. With the patch still not yet complete and the Mir APIs only being "sufficiently stable", it might not be ready for the next X.Org Server release who is due for release in September or October as the merge window should be closing soon. This next release is X.Org Server 1.15 but if XMir nesting support isn't merged by then it would be staved off until X.Org Server 1.16 in early 2014, which may end up being too risky for upgrading during the Ubuntu 14.04 LTS cycle. For Ubuntu 13.10, like the Mesa 9.2 situation, the Ubuntu packages will need to be specifically patched for handling Mir/XMir.
After posting the X.Org Server patch, Rogers then posted an AMD driver patch
so that the Radeon DDX driver can run within a Mir nested compositor. This AMD driver patch can't land though until the XMir support for the xorg-server has been merged. Rogers also admits that there's some missing "admittedly significant" optimizations from his current patch. There's also some possible ways to share more code with XWayland, but that also isn't done in this patch.
An Intel XMir driver patch was also posted so that both the UXA and SNA accelerated 2D back-ends will work with this Canonical display server. The Intel XMir patch can be found here
, but like the AMD driver work can't be merged until the xorg-server patch is merged and it also doesn't share any code with XWayland.
Last but not least is a Nouveau Mir patch
. The open-source NVIDIA driver support for running nested in a Mir compositor is also missing some performance optimizations.