1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems

Facebook RSS Twitter Twitter Google Plus

Phoronix Test Suite


Building & Running The Ubuntu Mir Display Server


Published on 04 March 2013 09:48 PM EST
Written by Michael Larabel in Ubuntu

The latest coverage of today's surprise announcement of Canonical developing Mir, their own display server for Ubuntu, is information on building and running the Mir display server with the code they open-sourced today. There's also a Phoronix video showcasing the (sad) state of the Mir client demo.

The Mir server and client code is written in C++ and is hosted within a Bzr Launchpad repository. As of this evening there's been 461 commits to the Mir repository since it was internally created in June of last year. As far as who's developing this display server not derived from X.Org or Wayland, see The Developers Behind The Mir Display Server.

Within the Mir's repository is a HACKING file that goes over the process of building and running Mir. It's a fairly straight-forward process. Mir does make use of the C++ Boost libraries.

In terms of how large Mir is at this point, the src/ directory that is home to the client, protobuf, server, graphics, input, and other code for Mir, is just 14,661 lines of code (that also includes a bit of the cmake files and other files). Or at least what's publicly exposed by Canonical for now...

Running Mir requires a modified Mesa stack. For the Gallium3D/Mesa drivers to work with Mir, a new EGL DRI2 component to Mesa is needed, which Canonical has in their own packaged version of Mesa within a Launchpad PPA but they haven't yet attempted to upstream their Mir changes for Mesa. The Mesa package can be found in this PPA. They also have a Mir package, which is actually packaged for the Quantal (Ubuntu 12.10) repository while the Mesa package is only packaged for Raring (Ubuntu 13.04). However, the Mir packages in there right now aren't too useful and don't include Canonical's demo clients for Mir.

Right now Mir is said to only work with the Intel and Radeon open-source graphics drivers, but evidently is not yet working for Nouveau. In terms of binary drivers supporting Mir, Canonical claims to be pressuring AMD and NVIDIA to support it, but that will likely be quite some time until those blobs make the changes to fully support EGL and other requirements. Canonical's Mir design plan is also for Android graphics drivers to be compatible with Mir. Mir's requirements are on EGL (not GLX) and OpenGL / OpenGL ES.

As covered within their hacking file, right now running Mir does require running an X.Org Server. Mir isn't running atop an X.Org Server, but rather the server needs to be running for setting up the graphics adapter and the necessary access rights. Mir is simply run from a separate virtual terminal while the X.Org Server is running, but if it's not, the document says you will get "strange errors." Switching between the xorg-server and Mir sessions will also result in X dieing.

Found within the Mir repository is a mir_demo_client_accelerated binary that they suggest as the Mir demo application at this point. I built Mir from the latest source (Revision 461) and installed the modified Mesa 9.1 drivers. This was happening from an Intel Ivy Bridge setup with the HD 4000 graphics and running an Ubuntu 13.04 snapshot.

When following the instructions for building and running the Mir demo, I was less than impressed... Embedded below is the minute-long video that shows switching from X.Org into the VT and running this accelerated Mir client demo.

There isn't much at all yet to this Mir client demo. Mir might be capable of more, but not what's being shown from this demo. The Mir un-accelerated demo version also doesn't do much.

Thinking I was perhaps overlooking something or that it was broken, I dug deeper. I then came across this Launchpad Blueprint for Mir. This page shows the official items on Mir that they still have to do:

- Modality state into surface model
- Window decoration
- Window resizing
- Morphing
- Semi-maximised states
- Proximity regions
- Overlay scrollbar
- Side stage
- Input transformation
- Workspaces in surface model
- Multi-display
- Non-homogeneous DPI displays
- Window deformation
- Inter-session effects
- Ready notification
- Boot / shutdown
- Mir on Mir
- Greeter on Mir
- Client transition animations
- Form-factor information status update
- Remote access
- Shell input control - pointer barriers, acceleration etc
- GTK+ support
- XUL support
- Libreoffice support
- Update control center
- Multi-seat?
- Input methods, accessibility

So while there's some early Mir code out there, initial Mir bindings for Qt5 within the QMir code-base, and some early work on LightDM support for Mir, they have a hell of a lot ahead of them.

Seeing as Canonical doesn't have any serious low-level Linux graphics developers as part of the small team working on Mir and the company has further alienated upstream X.Org/Wayland/Mesa developers with Mir, it will be a miracle if Mir is ready for all form factors in a production environment by Ubuntu 14.04 LTS next year.

Ubuntu LTS releases used to be about stability and well-tested code so it's a surprise they plan to introduce the new display server into Ubuntu 14.04. For at least Ubuntu 14.04 on the desktop I think it will be more likely they will end up pushing Mir as just an experimental feature while an X.Org Server will continue doing the bulk of the work. Then again, it was just last year that Canonical thought they would have a Wayland-based System Compositor for Ubuntu 12.10.

Latest Linux Hardware Reviews
  1. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  2. Overclocking The AMD AM1 Athlon & Sempron APUs
  3. AMD Athlon 5350 / 5150 & Sempron 3850 / 2650
  4. Upgraded Kernel & Mesa Yield A Big Boost For Athlon R3 Graphics
Latest Linux Articles
  1. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  2. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
  3. AMD Athlon's R3 Graphics: RadeonSI Gallium3D vs. Catalyst
  4. GCC 4.9 Compiler Optimization Benchmarks For Faster Binaries
Latest Linux News
  1. R600 Gallium3D Disables LLVM Back-End By Default
  2. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
  3. Fedora Workstation Is Making Me Quite Excited
  4. Maynard: A Lightweight Wayland Desktop
  5. Chromium Browser Going Through Growing Pains In Ubuntu 14.04
  6. KDE 4.13 Is Being Released Today With New Features
  7. Trying Out Radeon R9 290 Graphics On Open-Source
  8. Intel Broadwell GT3 Graphics Have Dual BSD Rings
  9. Early Linux 3.15 Benchmarks Of Intel Core i7 + Radeon
  10. Red Hat Releases Its RHEL 7 Release Candidate
  11. New Features Coming To Xubuntu 14.04 LTS
  12. NVIDIA Officially Releases CUDA 6
Latest Forum Discussions
  1. The GNOME Foundation Is Running Short On Money
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  4. Change installation destination from home directory
  5. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  6. Bye bye BSD, Hello Linux: A Sys Admin's Story
  7. New tool for undervolt/overclock AMD K8L and K10 processors
  8. How to enable opengl 3.3 on r9 270?