YSERVER 1.5 Released With Reverse PRIME Support & Other New Features

YSERVER 1.5 Released With Reverse PRIME Support & Other New Features

Announced a few months back was YSERVER as a modern X11 server written in the Rust programming language. In getting the project off the ground quickly and given the size of X11, it was largely vibe coded with Claude Code. The project continues and is attracting contributions from more users with today marking the YSERVER 1.5 release. This from-scratch X11 server implementation in Rust continues running "real" desktop environments and window managers like Cinnamon, MATE, Xfce, Compiz, Openbox, IceWM, Enlightenment, and others. Today's release of YSERVER 1.5 delivers more fixes and also a few new features. Arguably most notable with YSERVER 1.5 is support for Reverse Prime for multi-GPU systems where using the primary GPU is used to render images and then passing them off to the secondary GPU. After weeks of back and forth activity, Reverse PRIME was merged for YSERVER after successful hardware testing and working out a few bugs along the way. This also included adding more YSERVER plumbing all the way such as for mapping DRM devices to Vulkan GPUs and exposing RandR provider topology. YSERVER 1.5 also added support for Mesa OML MSC rate queries to address at least errors found in some Flatpak applications using ANGLE. YSERVER also now applies desktop accel-profile settings, serving DRI3 1.4 synchronization objects through DRM, X11 server-side window borders support, and various fixes. Also interesting is YSERVER now uncapping vsync-off clients with deferred execution and same-target super-session handling. This is for largely addressing a regression compared to upstream X.org Server for some full-game non-vsynced games like Counter-Strike 2. Per that pull: "A vsync-off client is capped at swapchain_images × refresh. CS2 measured 180–200 fps on yserver against ~400 on Xorg, and the cause is the 2026-07-27 vblank-pacing gate: it holds buffer release (IdleNotify / release syncobj) until the next MSC, so a 3–4-image swapchain can only recycle 3–4 buffers per 60 Hz vblank. The original capture showed exactly 3–4 copies per compose interval, phase-locked, while the game's real frame time was ~2.7 ms. This is NVIDIA-WSI-specific in practice: Mesa's WSI sets PresentOptionAsync unconditionally with vsync off and bypasses the gate, while NVIDIA's sends synced presents and relies on Xorg-style scrap — which yserver did not implement. ... The residual gap to Xorg's ~400 fps is flip-path territory (PresentCaps.flip_path, alien-BO scanout integration) and out of scope here." More details on YSERVER 1.5 for this vibe coded X11 Rust server continuing to grow can be found at GitHub.

Original Source

Read the full article at Phoronix →

KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.