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 3 of 4. 284 Comments.

Some Misconceptions about X and Wayland

I) “X is The UNIX Way.” The Unix Way says to do one thing and do it well-- X handled printing, it handled buffer management, it was its own toolkit, it handled fonts, it was a binary interpreter, along with loads of other things. What ONE THING was X doing and what ONE THING was X doing well?

II) “X is Network Transparent.” Wrong. Its not. Core X and DRI-1 were network transparent. No one uses either one. Shared-Memory, DRI-2 and DRI-3000 are NOT network transparent, they do NOT work over the network. Modern day X comes down to synchronous, poorly done VNC. If it was poorly done, async, VNC then maybe we could make it work. But its not. Xlib is synchronous (and the movement to XCB is a slow one) which makes networking a NIGHTMARE.

III) “The Wayland developers are only re-implementing X11 because they don't understand it.” Wrong. Most of the Wayland developers ARE former X11 developers. They know how terrible it is. They know where its failings are. They want to do better than X11.

IV) “Wayland requires 3D.” Wrong. It requires compositing, but that's not necessarily 3D. Nothing in Wayland requires 3D, there is even a Pixmen backend for software rendering.

V) “Wayland can't do remoting.” Wrong. Wayland should be BETTER than X at remoting, partially do its asynchronous-by-design nature. Wayland remoting will probably look a like a higher-performance version of VNC, a prototype already exists. And this is without us even giving it serious thought about how to make it better. We could probably do better if we tried.

VI) “Wayland breaks everyone's desktop.” Also wrong. Once XWayland is finalized and merged we should have more-or-less perfect backwards compatibility because every X app just gets its own mini X-server to deal with. There is one known snag and thats with window transformations because app thinks its in the top right corner of the screen (yay global coordinates) because that client's X server is locked to the size of that client's window.


Related Articles