Aller au contenu

YSERVER 1.7 ajoute Vulkan 1.2 et réduit l'usage de VRAM en 4K

YSERVER 1.7 fait passer l'usage de VRAM en 4K de 2-4 Go à environ 1,2 Go, près des 0,9 Go de X.Org, et ajoute la prise en charge de Vulkan 1.2 pour les anciennes puces graphiques Intel.

Par Tech AI Wire Team

3 min de lecture

XLinkedIn
Screenshot of the yserver 1.7.0 release page on GitHub, listing the changes in the release under a What's Changed heading.

En chiffres

YSERVER 1.7 VRAM on 4K, down from 2-4GB
1.2GB
X.Org Server on the same 4K setup
0.9GB
budget for the freed-pixmap cache
64 MiB
pull requests in the release
40+
Graphics memory on a 4K display
YSERVER before 1.7 (high end)
4GB
YSERVER before 1.7 (low end)
2GB
YSERVER 1.7
1.2GB
X.Org Server
0.9GB

YSERVER 1.7, un serveur d'affichage X11 écrit de zéro en Rust, a réduit sa consommation de mémoire graphique sur un écran 4K de 2-4 Go à environ 1,2 Go. Phoronix rapporte que X.Org Server, le serveur par défaut sur la plupart des systèmes Linux, utilise environ 0,9 Go dans la même configuration. Cette version ajoute aussi la prise en charge de Vulkan 1.2, ce qui ouvre la porte aux anciennes puces graphiques Intel. Pour un projet que Phoronix décrit comme « en grande partie façonné par Claude Code », l'écart avec le serveur établi est désormais faible.

Ce qui change dans YSERVER 1.7

X11 est l'ancien protocole que de nombreux bureaux Linux utilisent encore pour dessiner les fenêtres. Un serveur d'affichage est le programme qui parle ce protocole et affiche les pixels à l'écran. YSERVER vise à remplacer X.Org Server sur les bureaux modernes tout en abandonnant les parties héritées.

La mémoire était le problème principal. La VRAM est la mémoire de la carte graphique, et YSERVER en utilisait bien plus que X.Org. Les notes de version sur GitHub indiquent que désormais « les fenêtres n'occupent de la VRAM que lorsqu'elles sont visibles ». Les petites pixmaps libérées, les images de curseur et autres restes « ne s'accumulent plus dans la VRAM ». Une pixmap est une image hors écran que le serveur conserve pour dessiner.

Linux Compatible détaille les nouvelles règles du cache. Les pixmaps libérées sont désormais placées dans un cache doté d'un budget de 64 MiB, et le serveur le réduit après 60 secondes d'inactivité.

ChangementEffetSource
Prise en charge de Vulkan 1.2Fonctionne sur les puces graphiques Intel Haswell et Ivy BridgeLinux Compatible
Règles de VRAMUsage réduit en 4K, de 2-4 Go à environ 1,2 GoPhoronix
Correctifs de fuites GLXCorrige des fuites de mémoire dans GLX, le pont OpenGL pour X11Phoronix
Cache des policesRecherches indexées et mises en cache, polices compressées .pcf.gzLinux Compatible
Transformations CRTCMise à l'échelle fractionnaire, moniteurs virtuels, rotation et réflexionGitHub
Registre XInputUn périphérique d'entrée par clavier, souris ou stylet physiqueLinux Compatible
BIG-REQUESTSAccepte les grandes requêtes X11 de 16 MoPhoronix

Le travail sur les polices a corrigé la lenteur au lancement des applications. Les applications CDE et Motif « démarrent aussi vite que sous Xorg » désormais, selon les notes de version. CDE est le Common Desktop Environment des années 1990, un test ancien mais exigeant de la compatibilité X11. La version rassemble plus de 40 pull requests.

Comment le projet vérifie son propre travail

C'est le dispositif de test qui mérite d'être étudié. Linux Compatible rapporte qu'une suite appelée vng-suite compare le comportement de YSERVER octet par octet avec une instance X.Org en fonctionnement, sur des dizaines de scénarios. Le projet exécute aussi la X Test Suite de X.Org, qui prend environ 50 minutes.

Cela compte pour du code écrit avec l'aide de l'IA. Le dépôt contient des fichiers AGENTS.md et CLAUDE.md, qui donnent des instructions aux agents de code. Une comparaison octet par octet avec une référence fiable donne à chaque modification écrite par l'IA un verdict clair : réussite ou échec.

La conception reste volontairement simple. YSERVER est monothread, avec un seul thread qui possède tout l'état. Il supprime les visuels non TrueColor, le GLX indirect, l'interface de pilotes DDX et les clients à ordre d'octets inversé, selon Linux Compatible.

Où il fonctionne

Le projet a été testé sur AMD Ryzen, Intel Core, une Nvidia GTX 1050, Snapdragon X1, Apple M1 et M2 sous Asahi Linux, ainsi que sur des machines virtuelles virtio-gpu. Le dépôt liste plus de 14 gestionnaires de fenêtres et bureaux, dont Cinnamon, MATE, XFCE et KDE Plasma. Il est testé sous Linux et FreeBSD et publié sous licence MIT.

Des paquets sont disponibles via l'Arch User Repository, ainsi que des binaires pour Fedora, Debian, Ubuntu et Alpine. Le projet compte environ 590 étoiles sur GitHub. Il en avait 557 lorsque ce site a couvert YSERVER 1.5 et sa prise en charge de Reverse PRIME le 9 septembre.

Ce que cela signifie pour les développeurs

Si vous écrivez un remplaçant pour un système existant, copiez d'abord l'idée de test. Une implémentation de référence en fonctionnement et une suite de comparaison octet par octet transforment « ça a l'air de marcher » en résultat mesurable. C'est ce qui rend vérifiables les grandes réécritures assistées par IA.

Si vous avez un ancien ordinateur portable Intel, la 1.7 est la première version qui vaut la peine d'être essayée dessus. Installez-la depuis le paquet de votre distribution ou l'AUR. Testez-la avec votre propre gestionnaire de fenêtres avant de lui confier votre travail quotidien.

Sur un écran 4K, prévoyez environ 33 % de mémoire graphique de plus qu'avec X.Org : 1,2 Go contre 0,9 Go, selon les chiffres de Phoronix. C'est sans problème sur la plupart des GPU dédiés. Cela reste important pour les puces graphiques intégrées qui partagent la mémoire système. Signalez toute application qui ne fonctionne plus, car la suite de comparaison ne peut tester que les scénarios que quelqu'un a mis par écrit.

Sources

  1. YSERVER 1.7 Rust X11 Server Narrows Memory Usage Difference With X.Org Server - Phoronix
  2. YServer 1.7.0 Adds Vulkan 1.2 Support and CDE Compatibility to From-Scratch Rust X11 Server - Linux Compatible
  3. Releases - joske/yserver - GitHub

Articles liés