Features Coming To Wayland, Weston 1.4
Last week was marked by the first Wayland/Weston 1.4 Alpha release ahead of the planned general availability in January. For those that aren't up to date on all of the development activity, I've now had the time go through and highlight all of the major changes that landed in Git.
Wayland 1.4 itself will add:
- Sub-surfaces support has been added to the core Wayland protocol and it's already taken advantage of by Mutter Wayland and other clients. Sub-surfaces make for more efficient use of video players, windowed OpenGL games, and other use-cases. Sub-surfaces was formerly just part of Weston but has now been stabilized and promoted to part of the core protocol.
- Functions to to allocate and marshal proxies atomically, plus other fixes throughout core Wayland.
- The start of documentation for the server-side API. There's also new server-side API additions for protecting access to shared memory (SHM) buffers.
- Other small documentation updates and fixes.
That's about it for Wayland 1.4 There were less than 50 commits to the code-base since the Wayland 1.3 release back in October. The big feature is certainly sub-surfaces support. Now let's see what's up with the reference Weston compositor.
- Cropping and scaling support for Wayland surfaces (wl_surfaces). This surface/window scaling and cropping support has already been added within the Pixman renderer back-end.
- A new scalar test/demo app. This Wayland testing app stresses the wl_scaler and wl_surface_scaler protocol extensions via cropping and scaling a surface. There's also a new stacking demo added to Weston.
- Improvements to output handling, especially when monitors are disconnected from the compositor.
- Various evdev input improvements.
- A new renderer implementation to the nested compositor that creates a sub-surface for each of the client's surfaces. This new renderer depends upon the parent compositor supporting the Wayland sub-compositor protocol and necessary EGL extension. There's also now damage tracking for the nested compositor example.
- Raspberry Pi back-end fixes/improvements, including support for opaque regions.
- Touch-screen selection support to the Weston Terminal. There's also now scroll-back history for the Weston Terminal.
- XDG-Shell has been added.
- A convenient key binding for the DRM compositor to switch from the Pixman to OpenGL renderer back-end. More broadly, there's now support in Weston for run-time switchable render back-ends.
- Alt-tab support and an Exposé feature.
- Fullscreen and --scale options for the Wayland compositor. The Wayland compositor also has a new Pixman and shared memory fall-back mode.
- Support for per-output multi-texture borders with the OpenGL renderer.
- The Weston launcher now has a logind back-end.
- Various shell enhancements and fixes. There's also new weston.ini configuration tunables.
In total there's been more than 300 changes to Weston since the October 1.3 release! The items above were all of the major changes that caught my attention but there's many more fixes and minor improvements.
Wayland/Weston 1.4 should be a very exciting release and will be available in January. These improvements should also go very well with the Wayland activities going on within GNOME 3.12 and KDE Frameworks 5 / Plasma Workspaces 2. There's already been GNOME Wayland improvements within the 3.11 series and on the KDE side as of a few days ago there is a KDE Plasma 2 tech preview.