Wayland State

From Wiki

Jump to: navigation, search

Wayland is now mostly usable, via backward compatability with the X protocol (XWayland). Native usability is mostly down to applications migrating to GTK3 and Qt5.

Version 0.99 was released on 2012-10-15, and was the last API break. Plans are to not break the API in the future. Latest version is 1.1.0.

XWayland has a segfault bug, and has not been committed upstream (to xorg).

Ubuntu, Fedora, and Gentoo now have the Wayland backend of GTK+ enabled.

Qt5 was released 2012-12-19, but I don't think there are any official distro packages of it yet.

Contents


Drivers

The reference compositor (Weston) works with Intel, Radeon, and Nvidia (Nouveau) open source drivers. Nouveau on DRM requires kernel version 3.7-rc3.

XWayland

XWayland, the ability to run X clients within Wayland, is mostly working. Firefox, chromium, and supertuxkart appear usable. There are DDXes for Intel, Radeon, and Nouveau (Nvidia). A software implementation exists but is more glitchy.

The Nouveau DDX needs a couple patches, and the Radeon/ATI DDX needs some work for multiple monitors.

Toolkits

Clutter support is complete.

EFL support is complete except for selection.

Qt5 support is complete, including client side decorations (CSD).

GTK+ support is probably complete, update this from Wayland GTK+ page. Great list of status of GNOME apps.

So any application should work natively with Wayland as long as it uses one of these four toolkits, and it doesn't call any Xlib functions. Unfortunately, a number of GTK+ applications do call Xlib, through gdk_x11_* functions, and they need to be wrapped in build-time and run-time backend checks.

And while GTK3 was released over a year ago, Qt5 had its first alpha release in April 2012, and its first Beta in August 2012. While many GTK+ applications haven't made the conversion yet, presumably Qt applications, for the most part, haven't started.

Perl GTK3 bindings exist. They have been packaged for Fedora.

SDL support is rough. Latest sdl with wayland support is soreau sdl. Before running any applications, please:

export SDL_VIDEODRIVER=wayland

Browsers

Firefox and chromium work via xwayland (backward compatability with the X protocol).

The only web browser I've tested that works natively is qtwebkit, which is included with the Qt5 source. Weston occasionally crashes when running it. The snowshoe browser also works with Qt5.

webkit-clutter apparently works on wayland

The webkitgtk browser doesn't work. As expected, the midori browser based on webkitgtk doesn't work.

Firefox has a long way to go.

Chrome / chromium may have worked, but Wayland support was completely removed on 2012-04-07. Yan Wang announced some work on it on 2012-05-04. Update 2012-06-06.

Opera hasn't started working on Wayland support yet.

Terminals

weston-terminal is actually pretty decent.

vte, based on gtk, works fine.

gnome-terminal works.

Germinal works - VTE-based GTK+3 minimalistic terminal

Hawaii desktop terminal works with Qt5

I haven't tried clutterm, which uses Clutter, mostly because it says "This is a work in progress and it's far from ready for every day use."

QTerminal uses Qt, but is still using Qt4.

Terminology for EFL was started in June 2012. It probably works.

wlterm is probably good.

Other Applications

What works with Wayland? - list of applications that do and don't work.

Of the 22 gtk applications I tried (html5 theora video), 9 worked, and 13 didn't due to using Xlib calls. 41% worked (after I rebuilt GTK with --enable-wayland-backend).


Distributions

RebeccaBlackOS is a live ISO that includes Wayland. It's generally kept well up to date.

There is also a Fedora based Wayland Live CD.

A port to Android is in progress, by Pekka Paalanen, for Collabora.

Wayland packages

This package list is about the ability to get a compositor (mostly Weston) working with distribution packages.

If these packages are up-to-date enough in your distribution, you can probably skip their build in your Wayland setup.

Distro. Release libxkbcommon Mesa
(with GL, GLESv2, EGL and wayland-egl)
Cairo
(with GL, GLESv2 and EGL)
Wayland Weston
Arch 0.3.1 9.2.0
(GL, GLESv2, EGL and wayland-egl)
1.12.16
(GL/GLESv2 and EGL)
1.2.1 1.2.1
Debian Experimental  ?  ?  ? 1.1.0 1.1.1
Exherbo 0.3.1 and scm 9.2.4 and scm
(GL, GLESv2, EGL and wayland-egl)
1.12.16 and scm
(GLX or GLESv2, and EGL)
1.3.93 and scm 1.3.93 and scm
Fedora Rawhide  ?  ?  ? 1.1.0  ?
19  ?  ?  ? 1.0.6  ?
18  ?  ?  ? 1.0.3
Gentoo  ?  ?  ? 1.1.0  ?
Maui  ?  ?  ? see Arch  ?
Ubuntu
(now with
Amazon ads
)
Raring 0.2.0  ? 1.12.14 1.0.5 1.0.5
Quantal  ?  ?  ? 0.95  ?
Precise  ?  ?  ? 0.85  ?

Wayland backends

This package list is about the ability to have clients with a Wayland backend using distribution packages.

Distro. Release GTK+ Qt Clutter COGL EFL
Arch Yes No  ?  ?  ?
Debian Experimental No No No No  ?
Exherbo Yes No Yes Yes  ?
Fedora Rawhide Yes No  ?  ?  ?
18 Yes No  ?  ?  ?
Gentoo Yes No  ?  ?  ?
Maui Yes Yes No No No
Ubuntu
(now with
Amazon ads
)
Raring Yes No No  ?  ?
Quantal No No No  ?  ?
Precise No No No  ?  ?

Documentation and global state

Desktop Environments

Enlightenment - Wayland clients "...render ;) but cannot handle keyboard input yet. Fixing that up now" - 2013-03-11

The rest have not seen work in a long time:

KDE Plasma Workspaces (KWin) has "pre-alpha" Wayland support.

Mutter (GNOME Shell) seems to have some support in git branches, but little information available.

Xfce is considering Wayland.

Wayland Protocol

The protocol itself still needs work: http://cgit.freedesktop.org/wayland/wayland/tree/TODO

Moving this list to bugzilla.

Open Bugs

The Nvidia proprietary + cairo-gl problem:
Any one of these would've fixed the problem, the first one did:

Wayland bugs on the GTK+ bug tracker.

To Do

Things I, personally, feel are most noticably missing.

  1. XWayland / Weston is occasionally segfaulting.
  2. Submitting XWayland upstream so it can be included in distributions.
  3. Terminal clipboard: GTK+: Wayland and x11 backends simultaneously enabled is broken. Workaround disables GTK/Wayland clipboard. weston-terminal works with ctrl-shift-c, ctrl-shift-v. Clipboard works with gnome-terminal if run as an X client (but not native).
  4. XWayland popup menus don't work.
  5. Window decorations for GTK+ (buttons to close the window, etc.).
  6. Thread safety. "event dispatching is thread safe" as of v0.99 - anything else needed?
  7. Key bindings for launcher items? (launch terminal with ctrl-alt-t)
  8. Native major web browser (Firefox bug).
  9. Native LibreOffice.
  10. Network transparency.
  11. Native mplayer support. (done, but not committed?)
  12. Native WINE support.
  13. Native blender support.
  14. Hardware independent, hardware accelerated DDX for XWayland. Of the DDXes that exist, they are either hardware dependent (Intel, Radeon, Nouveau), or software only and unaccelerated (WLSHM). It would be nice if one were created that were hardware independent and hardware accelerated. Glamor is often mentioned as a good way to do this.
  15. Split libgl (OpenGL) from glx. Currently, using full OpenGL pulls in X libraries.
<krh> you keep libGL with just the GLX code, make it link to libOpenGL
<krh> libOpenGL is just the GL functions, like libGLESv2
<krh> new code that uses EGL+OpenGL will link to libOpenGL, old apps can continue linking to libGL


Done

  1. Window decorations for Qt (buttons) and XWayland (buttons).
  2. XWayland keyboard input in Firefox.
  3. GTK+: Wayland and x11 backends simultaneously enabled is broken. - Workaround committed, in 3.4.1 release.
  4. GTK+: Defaults to Wayland backend over X11, breaking X - Commited to master and 3.4, will be in 3.4.2 and 3.5.1 releases.
  5. Wayland currently only works on Intel.
  6. XWayland resizing windows. (fix)
  7. XWayland Nouveau DDX support (~100 lines, done for Intel and Radeon). (fix)
  8. Radeon and WLSHM DDXes need to be updated to handle xserver changes. (Intel DDX patch) (last xserver commit compatible with Radeon and WLSHM) (Radeon fix, wlshm fix)
  9. Video capture. (Partially done.) (done, README)
  10. WLSHM DDX needs s/hosted.h/xwayland.h/.
  11. Weston has a build dependency on libvpx which has a build problem.

Old Statuses

2012-03-24


This page surely has errors and omissions. Please create an account, contact Darxus for write access, and fix them.


Back to Wayland home.


Reciprocal links:
reddit.com
lwn.net
oneopensource.it (Italian)
linuxin.dk (Danish)
jupiterbroadcasting.com
opennet.ru (Russian)
phoronix.com
Wayland mailing list

Personal tools