Language Selection

English French German Italian Portuguese Spanish

How XMir and Mir fit together

Filed under
Software
Ubuntu

For Ubuntu 13.10, Canonical are proposing to use Mir by default. Of course, this requires a certain amount of replumbing. X would normally be responsible for doing things like setting up the screen and pushing the pixels out to the hardware, but this is now handled by Mir instead. Where a native X server would allocate a framebuffer in video memory and render into it, XMir asks Mir for a window corresponding to the size of the screen and renders into that and then simply asks Mir to display it. This step is actually more interesting than it sounds.

Unless you're willing to throw lots of CPU at them, unaccelerated graphics are slow. Even if you are, you're going to end up consuming more power for the same performance, so XMir would be impractical if it didn't provide access to accelerated hardware graphics functions. It makes use of the existing Xorg accelerated X drivers to do this, which is as simple as telling the drivers to render into the window that XMir requested from Mir rather than into the video framebuffer directly. In other words, when displaying through XMir, you're using exactly the same display driver stack as you would be if you were using Xorg. In theory you'd expect identical performance - in practice there's a 10-20% performance hit right now, but that's being actively worked on. Fullscreen 3D apps will also currently take a hit due to there being no support for skipping compositing, which is being fixed. XMir should certainly be capable of performing around as well as native X, but there's no reason for it to be any faster.

rest here




More in Tux Machines

Leftovers: Software

today's howtos

Leftovers: Gaming

AntiMicro 2.6 Yields Greater Compatibility For Gamepads On Linux

AntiMicro continues to be GPLv3 licensed and works not only on Linux but also modern versions of Windows for mapping keyboard/mouse controls to a gamepad. The Linux support though remains dependent upon an X.Org Server and its libraries. Read more