Wayland and Weston 1.4 is out
hoegsberg at gmail.com
Fri Jan 24 00:22:36 PST 2014
We have a 1.4.0 release. Tagged in git and tarballs available from
http://wayland.freedesktop.org/releases.html as usual:
181131253747500c4759a117ee312262fbb6ed19 weston 1.4.0 tag
4b4cd00621d64311a64108cc921e25e0c9e4767b wayland 1.4.0 tag
We didn't have a lot of activity since the release candidate (1.3.93).
There was a test suite fix in Wayland and fixes for 4 bugs in Weston.
The wayland repository continues to mature and moves slowly. This
cycle again only saw a few wayland changes, most of wich where fairly
• SHM Buffer SIBGUS protection. We added and couple of utility
functions to help compositors guard against broken or malicious
clients who could truncate the backing file for shm buffers and
thus trigger SIGBUS in the compositor (Neil Roberts).
• Subsurfaces protocol moved to wayland repo and as such promoted to
official wayland protocol (Pekka Paalanen).
• wl_proxy_set_queue() can take a NULL queue to reset back to default
queue. (Neil Roberts).
• A few bug fixes, in particular, I'd like highlight the fix for the
race between wl_proxy_create() and wl_proxy_marshal().
• A few scanner error message improvements and documentation tweaks
We came pretty close to doing exactly what we had planned for 1.4
• Window buttons for xwayland windows and proper decorations for the
nested compositor (wayland backend) (Jason Ekstrand).
• Make the gl-renderer a loadable module and make it possible to
switch from pixman to gl renderer at runtime. This lets the
compositor start up faster, since we can load the gl-renderer and
initialize EGL+GLES2 later in the startup (Ander Conselvan de
• Support framebuffer formats other than XRGB8888 (gbm-format config
value under [core] section). (Kristian Høgsberg)
• Use logind for privileged access. logind can now do the this that
weston-launch used to do: drm drop/set master and opening input
devices. With this, weston can run on KMS without the
weston-launch setuid helper (David Herrmann).
• struct weston_surface split into struct weston_surface and struct
weston_view. This is a weston-internal feature, that makes it
possible to display a surface in multiple places in the compositor.
• Better output unplug handling. We used to crash and in general not
handle output (monitor) unplug at all. We now clean up properly
and move windows back into the visible region when their output is
unplugged. (Ander Conselvan de Oliveira and Xiong Zhang)
• Keyboard focus animation and exposay (exposé-like window picker)
• More touch screen support, including touch-to-move and
touch-to-activate for surfaces, touch screen drag-and-drop (Xiong Zhang).
• Started work on xdg-shell protocol. The xdg-shell is a more format
attempt at developing a protocol for the interaction between
applications and a desktop environmet. The wl_shell protocol
currently in wayland was always only a place-holder to help
boot-strap toolkit support. Now that GNOME Shell is moving to
Wayland, we have a full-featured desktop to drive the work and we
can start the effort in earnest (Jasper St. Pierre, Rafael Antognolli).
• Nested compositor buffer pass-through. We specified a new EGL
extension to allow a nested compositor to pass buffers through to
the underlying compositor. This lets the nested compositor skip
rendering and instead present the contents using a subsurface or
such in the underlying compositor (Neil Roberts).
• Crop and scale protocol. This protocol, which we're initially
staging in weston, lets a client specify that a only sub-rectangle
of it's surface should be presented, and potentially scaled
up. (Jonny Lamb and Pekka Paalanen)
• weston-terminal gained scrollback history, use Ctrl+Shift UP/DOWN
to scroll. Added a context menu for easy access to copy/paste/new
terminal (which have always been available as Ctrl-Shift-C/V/N)
(Kristian Høgsberg). Touch screen selection support (Xiong Zhang).
A couple of features that we did in the 1.4 timeframe landed in mesa
and will be released with the next major mesa release (10.1):
• Support for eglSwapInterval(dpy, 0). Setting this lets an
application render as fast as possible, that is, not synced to
vblank. weston-simple-egl has a new -b option that makes it set
swap interval to 0 and render as fast as possible.
• Support for RGB565 EGLConfigs, even if the compositor is using a
different pixel format for its framebuffers.
• Now uses the __DRIimageLoaderExtension that lets the driver
allocate buffers without using flink. This in turn means that the
clients can use drm render nodes. The support is not completely
there yet, but should be able to get that in place for mesa 10.1.
• eglSwapBuffers() now flushes the wl_display(), which was always the
most sensible behaviour, consider the EGL eglSwapBuffer() language.
And that's about it for 1.4.0. We had 425 weston commits, 46 wayland
commits, and 40 individual committers this time:
Adrian Negreanu, Alexandru DAMIAN, Ander Conselvan de Oliveira,
Armin K, Axel Davy, Bryce W. Harrington, Cameron Stewart, Chi Ding
Chris Michael, Daniel Stone, David Herrmann, Dima Ryazanov,
Emilio Pozuelo Monfort, Fabien DESSENNE, Giulio Camuffo, Hardening,
Jason Ekstrand, Jasper St. Pierre, Jonas Ådahl, Jonas 'Sortie' Termansen,
Jonny Lamb, José Bollo, Kristian Høgsberg, Louis-Francis Ratté-Boulianne,
Lubomir Rintel, Marco Barisione, MoD, Neil Roberts, Pekka Paalanen,
Peter Hutterer, Philip Withnall, Rafael Antognolli, Rafal Mielniczuk,
Ricardo Vieira, Rui Matos, Stefan Schmidt, Tomeu Vizoso, U. Artie Eoff,
Wieland Hoffmann, Xiong Y Zhang.
Thanks for helping out, let's get started on 1.5. I'll send out an
update on some of the things we're looking at here at Intel and what
kind of schedule we'd like to do for 1.5 shortly.
More information about the wayland-devel