The Wayland Display Server has made immense progress since the time when I broke news of the project to the world back in late 2008. Going on four years later, the projects creator, Kristian Høgsberg, believes its ready for a 1.0 release and to remove its "experimental sticker."
Wayland advancements as of late have been going at an extremely steadfast manner from multi-touch support to handling surface transformations with input redirection. Just yesterday I mentioned how Wayland is almost ready for showing off now that the display server is becoming useful and the toolkits (GTK+, Qt, EFL, Clutter, SDL) and other components built upon it and Weston, its reference compositor, are actually functioning. (Speaking of the rapid pace of development, an initial implementation of "weston-launch" was published... I'll save those interesting details for another article.)
While much progress has been made and I have been tracking it since its inception, I was quite surprised to hear that Wayland 1.0 is now approaching as their first release -- there haven't been any experimental releases up to this point but just the active Git repository.
With the 1.0 release of Wayland and Weston, the developers will be maintaining the Wayland core protocol and library APIs as stable. "We're getting ready to do a 1.0 release, which marks a point where the core Wayland protocol and library APIs are going to be stable. It used to be that you would have to compile a special KMS pageflip kernel, a custom mesa branch and my standalone, halfbaked EGL library. Today, everything is upstream and we're working on closing the gaps in toolkit support."
Kristian will be telling this to the world this weekend in Belgium along with, "So aside from the technical Wayland content, I'd also like to tell about our path to 1.0, get the message out that we're peeling off the 'EXPERIMENTAL' sticker and invite people to get involved."
This news came out today from a speaker interview with Kristian on the FOSDEM web-site.
For those that might not have read all of the Wayland articles on Phoronix up to this point, here's the founder's description of the project: "Wayland is a new window system architecture aiming to be a good fit for everything from embedded and mobile devices to full-blown desktop environments. Wayland builds on most of the graphics driver, desktop and UI infrastructure we have today, but distils out just the display server functionality we actually use today. The toolkits, device drivers, compositors and desktop environments we use today all play their parts, but the X server is essentially reduced to an awkward, 500kloc IPC mechanism."
In the interview, Kristian Høgsberg also talks how he has focused Wayland strictly around Linux APIs and other interfaces. Unlike the X11 Server that can run on a variety of operating systems thanks to abstracting many of the interfaces, using lots of platform-agnostic code, and handling lots of things "in-house", Kristian has focused Wayland to take best advantage of Linux.
It's certainly possible to port Wayland to other operating systems, but they'll have to provide the same level of infrastructure as Linux does. One of the things that went wrong with X was that we tried to pull too much of the OS into X so that we could run on every old platform out there. Or to put it more bluntly, bending over backwards for fringe platforms. There's a real cost to that; the code gets encrusted in #ifdefs, codepaths that never get tested and bad architecture decisions such as userspace PCI bus enumeration and writing your own dynamic linker.
I also find that the Linux kernel has a lot of cool features that can make applications faster, safer and simpler, and we often don't use those in the name of portability. There is an accept4 syscall that lets you accept a connection on a socket and sets O_CLOEXEC atomically. The epoll mechanism with timerfd and signalfd does most of what many complex userspace event loops do in many thousands of lines of code. We need to embrace all the new features the kernel offers and not insist on some outdated lowest common denominator.
I will be in Brussels, Belgium from tomorrow through Monday and at FOSDEM this weekend. I'll be covering the Wayland talk along with all of the other X.Org/Wayland technical discussions. My notes will be on Phoronix, should have audio/video recordings, and will be tweeting.
With Wayland approaching a 1.0 stable state, it will be interesting to see how the Linux desktop changes and at what pace. The big question that comes up is what NVIDIA and AMD will do about supporting their binary graphics drivers for Wayland, since there is still the dependency upon kernel mode-setting (KMS) and in-kernel memory management. Right now only the open-source Linux drivers with KMS and DRI2 support are playing in Wayland's playground.
A Wayland 1.0 stable release also means that KDE should restore their work on Wayland support, as any stable release is what ended up blocking Martin Gräßlin's KWin work on Wayland last year after drafting some big goals.
It will also be interesting to see whether Canonical allocates any resources yet to bringing their Compiz-based Unity desktop to Wayland, since they want Wayland to replace the X.Org Server.
Besides Ubuntu, Tizen is also looking towards Wayland after MeeGo was killed before its planned 2011 adoption, it should appear in Fedora quite quickly, and will surely work its way to other Linux distributions over time.
Ending off, here's the video again of Wayland showing off with surface transformations and input redirection.