Thursday, May 23, 2013

Wayland preview

If you’re familiar with the Raspberry Pi desktop experience, you’ll have noticed that windows on the desktop can be a bit slower to move around than you’re used to on your PC or laptop. This is because X, the windowing software (or composition protocol) that we use, is not optimised to use the graphics core of the BCM2835, the chip at the heart of the Raspberry Pi. All the work is done by the ARM processor instead, which slows things down and leaves the graphics core twiddling its thumbs. That graphics core is extremely powerful, so we’re working on putting it to good use to fix the issue.

We’ve made the decision to bypass X completely. Over the past few months we’ve been working with our friends at Collabora to implement the open-source Wayland composition protocol on top of the BCM2835 hardware video scaler (HVS). The HVS is a very powerful piece of hardware, with a scaling throughput of 500 megapixels per second and blending throughput of 1 gigapixel per second. It runs independently of the OpenGL ES hardware, so we can continue to render 3d graphics at the full, very fast rate, even while compositing.

Wayland composited desktop with XWayland and native applications.

In comparison to our current X11 desktop environment, Wayland frees the ARM from the burden of stitching together the top level of the composition hierarchy, and allows us to provide some neat features, including non-rectangular windows, fades for windows which don’t have input focus and an Exposé-like scaled window browser (the sort of thing that Mac users will be familiar with). Legacy X applications can still be supported using XWayland. Check out this video from Collabora to see these features in action, and to compare the current state of affairs with the Wayland future. Those non-rectangular shapes? They’re also windows.

We’re still working to improve performance and memory consumption, and don’t expect to be able to replace X11 as our default desktop environment until later in the year, but we will be including a technology preview in our next Raspbian release. Until then, this post on Collabora’s website gives some more background.

As with PyPy, the Raspberry Pi Foundation has funded this work on Wayland; it’s one of the ways we are trying to give back to the open-source community. Obviously, much of the work on this particular project is Raspberry Pi specific, but there’s a large portion of what’s being done, particularly around X-Wayland and some of the generic effects in Weston, that can be reused on many other platforms.

We’re looking forward to being able to push out the full release in the next few months. We hope you like the look of it!

No comments:

Post a Comment