DevNews

YSERVER 1.4 Is a Rust X11 Server That Now Runs Steam

On this page
  1. What 1.4 changes
  2. The less visible half of the release
  3. What the conformance number does and does not tell you
  4. The provenance question, again
  5. Sources and further reading

YSERVER 1.4.0 arrived on July 29, 2026, and the headline change is that Chrome and Steam now get GPU acceleration on a from scratch X11 server written in Rust. Full screen games and video playback work under Cinnamon, KDE Plasma gets RandR resize and ARGB popups, and the project reports 672 passing tests in the full XTS5 regression suite across AMD, Intel, NVIDIA and Apple Silicon. The other reason to pay attention is how it was built. This is an X11 server written largely with an AI coding agent, in a summer when GCC and Debian are both arguing about whether to accept that kind of contribution at all.

The short answer

YSERVER is an X11 display server written from scratch in Rust by Jos Dehaes, developed largely with the Claude Code agent. Version 1.4.0 landed on July 29, 2026. GLX pixel buffers are now backed by a real GPU pixmap, which gives Chrome and Steam accelerated paths. Present completions are paced to the vblank and the Present 1.4 acquire timeline is honoured. Full screen games and video work under Cinnamon, and KDE Plasma gains RandR resize and ARGB popups. The project reports 672 passing tests in the full XTS5 suite on AMD, Intel, NVIDIA and Apple Silicon.

672XTS5 tests passing, across four GPU vendors
1.4.0released July 29, 2026
MITlicence, written from scratch in Rust
Answer card: YSERVER 1.4.0 released July 29, 2026, a from scratch X11 server in Rust that now gives Chrome and Steam GPU acceleration, runs full screen games under Cinnamon, and passes 672 XTS5 tests across AMD, Intel, NVIDIA and Apple Silicon.
The release in one card. Source: the YSERVER 1.4.0 release notes and the project's summary to Phoronix. PNG

Writing an X server from scratch is one of those projects people talk about and then do not do. The protocol is thirty years of accumulated extensions, the reference implementation is enormous, and the reward for finishing is compatibility with software everyone says they want to stop using. YSERVER is doing it anyway, in Rust, and version 1.4 is the release where it stopped being a curiosity and started being something you could plausibly test against.

What 1.4 changes

The change that unlocks the rest is unglamorous: GLX pixel buffers are now backed by a real GPU pixmap. Previously they were not, and that is exactly the sort of gap that makes an application decide it cannot use hardware acceleration. With real pbuffers, Chrome and Steam take the accelerated WebGL path.

Two presentation fixes sit alongside it. Present completions are now paced to the vblank, and the Present 1.4 acquire timeline is honoured. That combination is what fixes free running clients, full screen video playback and the Plasma loading spinner, all of which are symptoms of the same class of bug: a client that never learns when its frame actually landed.

Scanout buffers are now allocated through GBM and imported into Vulkan, which widens the range of drivers and DRM format modifiers that work. This is the same modifier plumbing that keeps turning up elsewhere in the graphics stack this month.

The less visible half of the release

Checklist figure listing YSERVER 1.4 changes: GLX pbuffers on real GPU pixmaps, vblank paced Present completions, GBM scanout buffers imported into Vulkan, RANDR EDID and connector type passthrough, Xorg compatible output names, keyboard layout switch fixes and a true idle event loop.
Most of 1.4 is compatibility work rather than features. That is what conformance looks like from the inside. PNG

The release notes are long, and most of the entries are compatibility rather than capability. A few worth calling out, because they tell you what it takes to be a real X server rather than a demo.

RANDR now reads and writes output properties, passes through output identity including EDID, EDID_DATA and ConnectorType, reports fractional refresh rates derived from real kernel mode timings, and uses Xorg compatible output names, so HDMI-1 rather than HDMI-A-1. Every script and configuration tool that parses xrandr output depends on that last detail.

Keyboard layout switching now clears stale per key overrides and broadcasts a legacy MappingNotify, so clients actually pick up the new layout. FreeColors is dispatched instead of failing with BadRequest, which is what Tk applications need. X-Resource client accounting reports LocalClientPID in QueryClientIds. Per device libinput settings for mice and touchpads apply properly, pointer motion history works through GetMotionEvents, and XI2 gained relative RawMotion deltas, scroll stop on finger lift, implicit pointer grabs and a unified freeze state.

On the RENDER side, the full standard PictOp family is implemented, a8 mask destinations work for CompositeGlyphs, and glyph rendering is now batched into a single instanced draw per text run.

There is also a starty launcher in the startx tradition, handling display number selection, MIT-MAGIC-COOKIE-1 authentication and session teardown, plus man pages and packaging improvements. The libseat dependency has been dropped in favour of a direct only seat model. And the server is now genuinely idle when nothing is happening, with fairness and backpressure in the core loop, which matters more than it sounds if you have ever watched an X server burn a core doing nothing.

What the conformance number does and does not tell you

672 passing XTS5 tests across AMD, Intel, NVIDIA and Apple Silicon is a real signal, and it is the right way to measure this kind of project. XTS5 is the X Test Suite, and running it against four GPU vendors is more rigour than most hobby projects apply to themselves.

It is not a claim of completeness. XTS5 predates a great deal of what modern applications do, so passing it means the protocol behaviour is sound rather than that GTK 4 will be happy for a week. A test suite also says nothing about the failure modes that matter in daily use: memory growth over long sessions, behaviour when a GPU resets, what happens on a monitor hotplug at an awkward moment.

Our read is that YSERVER is now a good testing target and not yet a daily driver. If you maintain an X client, or a toolkit, or a window manager, running it against an independent implementation of the protocol will find bugs in your code that the reference server has been quietly tolerating for years. That is genuinely useful and it does not require betting your session on it.

The provenance question, again

YSERVER was written largely with Claude Code, and the repository ships both a CLAUDE.md and an AGENTS.md. The author is open about it, which is the only sensible way to handle it.

This lands in the middle of an argument. GCC has decided to decline significant AI generated contributions, with an exception for test cases. Debian is running a general resolution on LLM written contributions. And Starling, a Linux desktop written in Swift with Claude, showed up a couple of days before this release.

The two sides of that argument are not really in conflict, because they are answering different questions. GCC and Debian are reasoning about provenance, copyright and review burden inside codebases that thousands of projects depend on and that need to be maintainable for decades. A greenfield MIT project with one primary author carries none of that risk, and asks a narrower question: can the approach produce a working X server at all?

1.4 is a reasonable answer to that narrower question. Three outside developers made their first contributions to this release, and one of them fixed the stable toolchain build on Ubuntu 26.04, which is the sort of unglamorous patch that only arrives when people are actually using something.

Sources and further reading

Frequently asked questions

What is YSERVER, and who is writing it?

YSERVER is an X11 display server written from scratch in Rust, MIT licensed, developed by Jos Dehaes in the joske/yserver repository on GitHub. It first appeared publicly earlier in the summer of 2026 and has been shipping releases quickly since. It is not a fork of Xorg and not an XWayland variant. It implements the X11 protocol directly, which is why the project measures itself against the XTS5 conformance suite rather than against a feature list. Version 1.4.0 was published on July 29, 2026, and brought first contributions from three developers outside the original author.

What does GPU acceleration for Chrome and Steam actually involve here?

The specific change is to GLX pixel buffers. YSERVER 1.4 makes pbuffers backed by a real GPU pixmap rather than something the server emulates, and that is what allows Chrome and Steam to take the accelerated WebGL path instead of falling back. Alongside it, Present completions are now paced to the vblank and the Present 1.4 acquire timeline is honoured, which is what fixes free running clients, full screen video and the Plasma spinner. Scanout buffers are also allocated through GBM and imported into Vulkan, giving wider driver and DRM format modifier coverage. Together those are the changes that turn a protocol implementation into something you can watch a video on.

Which desktops and hardware does it work on?

The project reports working support for MATE, Xfce, Cinnamon, KDE Plasma and classic window managers, and Sonic DE, a Plasma X11 fork, has been tested successfully. Version 1.4 adds Plasma RandR resize support and ARGB popup transparency, plus full screen games and video playback under Cinnamon. YSERVER was recently qualified on openSUSE Tumbleweed running KDE Plasma on NVIDIA hardware. The XTS5 regression suite runs across AMD, Intel, NVIDIA and Apple Silicon with 672 tests passing. Version 1.3 had already added FreeBSD support and Xinerama, so the target surface is wider than Linux alone.

Is it ready to replace Xorg on a machine I care about?

No, and the project is not claiming that. Passing 672 XTS5 tests is a meaningful conformance signal and it is not the same as completeness, because XTS5 does not cover everything real applications do and a suite pass says nothing about stability over weeks of uptime. The sensible use today is testing: keeping X11 applications honest, checking how a toolkit behaves against an independent implementation of the protocol, or exercising your own X client against something other than the reference server. Anyone whose desktop session is load bearing should stay on Xorg or Wayland for now and watch this instead.

Why does the AI authorship matter?

Because it is a data point in an argument the free software world is actively having. YSERVER was written largely with Claude Code, and the repository carries both a CLAUDE.md and an AGENTS.md. In the same weeks, GCC decided to decline significant AI generated contributions with an exception for test cases, and Debian has been voting on how to handle LLM written contributions. Those projects are reasoning about provenance, copyright and review burden on codebases that already exist and must keep working for decades. YSERVER is the other experiment: a greenfield project where the question is simply whether the approach can produce a working X server. On the evidence of 1.4, it produces something that runs Steam.