The Wayland Situation: Facts About X vs. Wayland

Written by Eric Griffith in Display Drivers on 7 June 2013 at 12:42 PM EDT. Page 2 of 4. 284 Comments.

The Fixings Of Wayland

(numbered to match-up with the failings of X.)

I) The entire protocol is versioned. Every listener gets exactly the version they support, nothing more. No more randomness.

II) The input system in Wayland looks a lot like Xinput 2.2, minus all the legacy cruft and minus the Master/Slave relationship between inputs. Everything gets one virtual keyboard, one virtual mouse, and one non-virtual tablet interface. The nightmare called multitouch will finally be sorted out. Note from Daniel: As one of the authors of multitouch, I feel pretty qualified to say that it's shit.

III) Wayland HAS no drawing API to mess around with. Wayland wants buffers filled with pixels from clients and, aside from the security hooks to make sure clients aren't messing with eachother's buffers, it doesn't care how those pixels got there. Clients control what pixels those buffers hold, this way what gets displayed on screen is EXACTLY what the client wants.

IV) Wayland is minimal. There's no over-arching Psuedo-OS controlling your graphics display. There's no 26yr old API “Getting in the way.” Clients carry the brunt of the work, which is okay because clients don't have to maintain extreme-backwards-compatibility. Qt5 dropped Qt3 support. X still has to maintain things that were written 26yrs ago. And things from 26yrs ago, are getting in the way of fixing things TODAY.

            A) Note from Daniel: Wayland is also non-blocking, so your entire desktop doesn't stop rendering just because one client hangs or is going through an expensive operation. Only THAT client stops rendering.

V) Composition is mandatory under Wayland. That isn't to say that everything has to have 3D effects or wobbly windows. By composition we mean that everything is tear-free, flicker-free and flash-free. Wayland's motto is “Every frame is perfect.” Every pixel is exactly WHAT it should be, WHERE it should be, and be there WHEN its supposed to be there-- as dictated by the clients.

VI) Clients handle fonts, like they do now anyway.

VII) Multi-monitors is a client problem. Same with multiple graphics cards (Optimus). Wayland only wants buffers filled with pixel and to be told where to display them. It doesn't care how they got there.

VIII) Unlike X which had everything as its own window at first, Wayland supports 2 types of windows. Top-level windows, which are essentially wrappers around multiple buffers. And sub-surface windows, which is mainly targeted at video playback.

            A) They are kept coherent though, unlike X, so no tearing or thrashing of the window just because you scrolled down the YouTube comments section while the video was playing.

IX) Wayland doesn't deal in global coordinates, at least not publicly. It deal's in surface-relative coordinates. Wayland's coordinate counter is 31-bits, which means each SURFACE (read: window) can be 2,147,483,648 pixels in size.


X) As a security precaution...your screensaver and locker are apart of the compositor. This has an added benefit because your compositor (Eg: kwin) DOES understand your media keys, so even while your screen is locked you can still mute your media.


Related Articles