The X11 server yserver 1.5.0 has been released, written from scratch in the Rust language and supporting the latest X11 protocol extensions. The project does not aim to replicate all the capabilities of Xorg Server and is limited only to the functionality required to run modern desktop environments, window managers, applications and graphics libraries (GTK, Qt, SDL, GLFW). The environments tested included MATE, Xfce, Cinnamon, Sonic and Enlightenment, as well as window managers such as icewm, FVWM3, openbox, i3 and wmaker. The project code is distributed under the MIT license.
Yserver has decided not to support outdated and specific features, such as processing multiple X11 screens in one server (multi-monitor output is supported), color modes other than TrueColor, indirect rendering (indirect GLX), DDX driver API, old working methods with fonts and connecting clients with a different byte order (translation between big-endian and little-endian).
Graphics output is organized through DRM/KMS and Mesa Vulkan drivers. The libseat library is used to manage the session and provide access to shared input and output devices. In addition to the separate X server, ynest is supplied – a backend for nested launch, which supports work from Xwayland or another X11 server.
The work has been tested on systems with AMD Ryzen 9 6900HX GPU (Rembrandt, RDNA2, RADV mesa driver), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, ANV mesa driver), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, as well as in virtualization systems with virtio-gpu and virtual GPU Venus. Work in Linux and FreeBSD is supported.
In the new version:
- Added support for the reverse-PRIME mechanism, which allows you to use the integrated GPU for rendering, and the GPU of a discrete video card for displaying in situations where external