Besides needing to get the various tool-kits and other libraries ported to run atop the Wayland Display Server
, another requirement limiting the adoption of this X11 Server alternative so far has been the specialized graphics requirements. From the beginning, Wayland was designed for GPU drivers that support kernel mode-setting (KMS), Graphics Execution Manager (GEM) buffers, and OpenGL ES, among some other smaller requirements. Originally only the Intel Linux driver would work, but since then the various branches needed to support Wayland have been merged to their mainline code-bases and it's possible to run Wayland with the open-source ATI Radeon and Nouveau drivers too. But those using the proprietary ATI or NVIDIA drivers have not been able to run Wayland nor those people utilizing the VESA driver or any of the other obscure graphics drivers that lack any of the needed GPU driver capabilities. This though has now changed as it's been proved possible that Wayland in fact can run off a Linux frame-buffer.
Two patches have been published that first change around Wayland to allow it to be run off a Linux frame-buffer and then the second patch adds a Wayland FB compositor. These patches haven't been called to be pushed into Wayland yet, nor does it work completely yet, but it means that DRI / Mesa and the other graphics requirements can be bypassed. So far this Wayland frame-buffer setup has been tested with the NouveauFB and uvesafb drivers. It's quite interesting, but at the same time this display server with integrated compositor had consumed more than 8GB of virtual memory just to run Wayland with a terminal application. Clearly if this is to be a viable solution for those wanting to run Wayland but lack the proper graphics hardware or driver capabilities, there's a lot of work ahead.
The Wayland frame-buffer compositor measures in at just over 600 lines of code while it's a 1,000+ line patch against the core part of Wayland to make it handle running without a DRM compositor and all of these other graphics bits. The Linux frame-buffer has traditionally been used for just showing text on a console without relying upon an X.Org Server and its drivers or anything else vias the Linux kernel. Besides the console, GTK+, Qt Extended, and other libraries already support touching the frame-buffer directly, where it's in use on embedded/mobile devices. This Linux frame-buffer support though is generally CPU-based and the frame-buffer can be mapped in the system's main memory, but there is DirectFB to provide hardware acceleration over the kernel's frame-buffer.
It will be interesting to see what happens with this frame-buffer support for Wayland and whether it ends up getting picked up. It would greatly expand the number of systems where Wayland can be used, including on the binary blobs where NVIDIA has no immediate plans to properly support Wayland
. This may also help Canonical in their Wayland adoption plans
for the Ubuntu Unity desktop.
Information (and the patches) on this Wayland bring-up on the Linux frame-buffer can be found on the Wayland mailing list