May 30, 2013

Raspberry Pi Gains Graphics Speed as Wayland Replaces X

On May 24, Raspberry Pi Foundation executive director Eben Upton announced that the open source board’s recommended Linux distribution, Raspbian, will be adding support for a customized Wayland display manager.

While the Pi’s Broadcom BCM2835 system-on-chip may be limited to a 700MHz ARM11 processor, it also has an impressive graphics processing unit (GPU) called the VideoCore 4. The Wayland windowing interface is optimized for the VideoCore and will offer much faster and more capable display performance compared to the current X Window, wrote Upton.

Wayland on Raspberry PiFunded largely by the Raspberry Pi Foundation, the Pi version of Wayland, as well as the associated Weston reference compositor back-end, was developed primarily by Collabora with the help of Pekka Paalanen on the Weston side. The Wayland/Weston windowing interface can be tested now, and will soon be offered as a more stable Raspbian technology preview. It will be fully integrated in Raspbian in the coming months, said Upton in a email interview yesterday (see farther below). Although X will continue to be supported for now using XWayland, "We’ve made the decision to bypass X completely," Upton proclaimed in the announcement.

The lightweight, Debian-based Raspbian, which uses the LXDE GUI environment, was already optimized for the Raspberry Pi's ARMv6-architecture ARM11 CPU. The most recent version of Raspbian ("Wheezy") was upgraded earlier this year to Debian 7.0 and Linux 3.6.11, and shows dramatic performance improvements, according to benchmarks published May 28 on Phoronix. (It should be noted that several commenters questioned the Phoronix interpretation of the results, however, so we'll wait for confirmation.)

Raspbian is now joined by a new ARMv6 optimized Fedora 18 Remix for the Pi called Pidora. Released last week by the Seneca Centre for Development of Open Technology (CDOT), Pidora offers much improved performance on the RPi compared to earlier RPi-focused remixes, and features numerous packages from Fedora 18 (see our earlier article on Pidora).

The RPi version of Wayland/Weston should make it easier for Pidora and other RPi-supporting distributions like ArchLinux and Risc OS to build their own Wayland display managers, said Upton. (A recent TechRadar roundup review of RPi-ready distros also included Plan 9 and Android 2.3, although both received poor marks.)

Wayland Makes Headway

Typically, we think of the Raspberry Pi as an embedded hacker platform for headless gizmos. (For a glimpse of the RPI's range, see this recent Reddit thread on RPi projects, which includes everything from prosthetic knees to wood engraving machines.) Yet, about half of all RPi projects make extensive use of the HDMI port for running an external monitor, including most educational applications.

The aging X Window interface used by current Linux distributions -- including Raspbian, which incorporates X11 by way of its Openbox window manager -- is not optimized for the hardware video scaler (HVS) in the RPi's VideoCore 4 GPU. As a result, much of the GPU's power, including throughput of up to 500 megapixels per second and blending throughput of 1 gigapixel per second, are unavailable. The ARM11 processor is left to do much of the work, leading to poor graphics performance and shaky window manipulation.

Several Linux distributions are looking to replace X with modern display servers such as Wayland, or in the case of the Ubuntu project, Canonical's own homegrown Mir. Wayland and Mir are simpler and more flexible than X, and offer built-in support for the now almost ubiquitous hardware-accelerated graphics.

The Fedora project's three-year old plan to replace X with Wayland has finally gathered steam. The first beta version of Fedora 19 (“Schrödinger's Cat”), released May 28, includes a GNOME-based GTK+ UI toolkit that supports a preliminary version of Wayland with Weston. There may be good reasons why the Fedora project has been dragging its feet on Wayland. Potential headaches in replacing X11 are discussed in this April post on

Now, it's Debian's turn to go Wayland, at least in its Raspbian incarnation. In addition to promising generally better graphics display performance, Wayland/Weston gives RPi users some "neat features," according to Upton's announcement. These are said to include "non-rectangular windows, fades for windows which don’t have input focus and an Exposé-like scaled window browser." The performance is good enough that Upton expects Wayland to replace X11 as the default in Raspbian later this year.

RPi's Eben Upton on Wayland/Weston

Eben Upton Raspberry PiWe dove a little deeper in our email interview with Upton, as follows. Most of the terms he mentions are explained in this overview of Wayland/Weston on the RPi by Collabora's Daniel Stone, as well as this description of Weston on RPi by Pekka Paalanen. (Editor's Note: Be sure to catch Eben Upton's keynote talk at LinuxCon North America, Sept. 16-18 in New Orleans.)

Q: Why Wayland now?

Upton: Wayland has become much more mature over the last few months: It was much easier for Pekka to add support for DispmanX (our back-end compositor interface) in March/April by writing a new renderer than it was last year, when the preferred route was to use overlay planes. XWayland seems to have moved forward as well (and we're investing quite a lot of our own money in this), so we have a good backward-compatibility story.

Q: Were there any other options considered, including a Mir-style homegrown display manager?

Upton: We did consider traditional X acceleration, but it's very hard to bootstrap the level of competence required to do this well from a standing start. A homegrown display manager was a non-starter: We don't see the rationale for yet another fork, and unless you're a giant corporation like Canonical you'd be pushing water uphill to get adoption. Wayland is just such a good fit both for our hardware and for the sorts of things our users want to do.

Q: Will Raspbian continue to support X sessions as well, or is this a wholesale change?

Upton: We'll continue to support X for the foreseeable future, but we won't be investing specifically in improving X performance.

Q: Is this only for Raspbian, or do you foresee other supported distributions adding Wayland support?

Upton: I'd love to see other distributions supporting Wayland. Everything that's being done for Raspbian is going upstream, so I don't see any reason why this couldn't happen.

Q: What kind of graphics improvements do you expect in the full release for Wayland/Weston on Raspbian, and where do expect to see it pay off the most?

Upton: Things like 60fps window dragging have a large impact on the perceived quality of the user experience, but the real payoffs for us are the ability to add zero-copy hardware accelerated surfaces for 3D graphics and video playback. Obviously this is something we could have done with overlays and conventional X acceleration, but Wayland gives us a much simpler, cleaner route to almost the same destination. One nice fringe benefit is that we'll be able to present the wacky big-endian framebuffer format used by the Squeak Smalltalk VM (and hence by MIT's Scratch educational programming language) directly without having an ARM-side format conversion.

Q: Is Wayland on Raspbian primarily aimed at educational applications?

Upton: For us this is about improving the Pi's usability as a general-purpose computer, whether that's for education or as a "first PC" for the developing world. We figure at least 50% of our current volume is going into headless applications; it will be interesting to see how this changes over time as Wayland/Weston, and our other OSS investments like Pixman, Squeak, PyPy and LibreOffice, roll into the platform.