Besides the obvious requirements and demands of needing to design a display server that can fully replace the needs of the long-standing X Server, and making all the tool-kits and major software support running natively on Wayland, another inhibitor to Wayland's adoption has been its graphics driver requirements. In particular, Wayland requires kernel mode-setting, EGL (in place of a DRI2 requirement), in-kernel memory management (GEM), and 3D acceleration.
The major open-source drivers (Intel, Radeon, and Nouveau) in their mainline code-bases now support running Wayland directly, but the proprietary AMD Catalyst and NVIDIA drivers still lack the necessary support and they will likely continue without Wayland support for the near future. There's also many obscure graphics hardware and drivers out there that aren't yet capable of running Wayland: VIA, XGI, S3, Matrox, PowerVR, etc.
For the obscure hardware out there unlikely to receive Wayland support or in cases where the user's waiting on hardware enablement (e.g. new graphics processors not yet supported by the open-source drivers), Wayland is now capable of using the software rendering found in Mesa's Gallium3D architecture.
Benjamin Franzke has written to the Wayland mailing list today about Software Rendering
. Support to Mesa and Wayland have been added for client-side software rendering on Gallium3D's Softpipe driver.
Even if you have hardware acceleration, you can opt to use software acceleration by setting the EGL_SOFTWARE, EGL_DRIVER, and EGL_PLATFORM environmental variables for the Wayland client. This is also capable of running the X11 compositor for Wayland with software rendering.
Wayland has also moved the buffer management into EGL so that DRI2 is no longer a hard requirement for the driver. As part of this work to bring Wayland up on software rendering, Ben added a Wayland software shared memory winsys to Gallium3D and cleaned up the EGL state tracker for Wayland.
Ben is also the developer that's been exploring OpenWF support -- the low-level Khronos API for composited windowing systems -- in Wayland as an alternative to (or in replace of) using Linux KMS APIs directly.
Right now this is using the Gallium3D Softpipe driver, but without too many problems it should be possible to get it running with the LLVMpipe
software driver. LLVMpipe runs significantly faster than Softpipe as it takes advantage of the Low-Level Virtual Machine (LLVM) and can take full advantage of modern processor features.
Along the same lines, last year it became possible to run Wayland off a Linux frame-buffer
for those without kernel mode-setting support.
So in theory if you have a very fast processor, lots of system memory, and some obscure graphics processor or are dedicated to unsupported proprietary drivers, it's possible to run Wayland using software rendering.