Le serveur X11 yserver 1.5.0, entièrement réécrit en Rust et compatible avec les extensions actuelles du protocole X11, est désormais disponible. Ce projet ne prétend pas reproduire l'intégralité des fonctionnalités de Xorg Server et se limite aux fonctions nécessaires à l'exécution des environnements de bureau modernes, des gestionnaires de fenêtres, des applications et des bibliothèques graphiques (GTK, Qt, SDL, GLFW). Parmi les environnements testés figurent MATE, Xfce, Cinnamon, Sonic et Enlightenment, ainsi que des gestionnaires de fenêtres tels que icewm, FVWM3, openbox, i3 et wmaker. Le code source est distribué sous licence MIT.
yserver a décidé de ne pas prendre en charge les fonctionnalités héritées et spécifiques, telles que la gestion de plusieurs écrans X11 dans un seul. serveur (la sortie multi-écrans est prise en charge), les modes de couleur autres que TrueColor, le rendu indirect (GLX indirect), l'API du pilote DDX, la gestion des polices héritées et la connexion à des clients avec un ordre d'octets différent (traduction big-endian vers little-endian).
L'affichage graphique est assuré par les pilotes DRM/KMS et Mesa Vulkan. La bibliothèque libseat gère les sessions et l'accès aux périphériques d'entrée/sortie partagés. Outre un serveur X dédié, ynest est fourni : un moteur d'exécution imbriquée compatible avec Xwayland et d'autres serveurs X11.serveur.
Ce travail a été testé sur des systèmes équipés des GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, pilote Mesa RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, pilote Mesa ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple MBA M1, MBP M2, ainsi que sur des systèmes de virtualisation avec virtio-gpu et GPU virtuel Venus. Ce travail est soutenu par [nom du développeur/de la société]. Linux et FreeBSD.
Dans la nouvelle version:
- Ajout de la prise en charge du mécanisme reverse-PRIME, qui permet d'utiliser le GPU intégré pour le rendu et le GPU de la carte graphique dédiée pour l'affichage lorsque des moniteurs externes sont connectés aux ports de la carte graphique dédiée.
- Ajout de la prise en charge du transfert des données de taux de rafraîchissement de l'écran à Mesa via l'extension GLX_OML_sync_control.
- Optimisations mises en œuvre pour réduire la latence pour les clients dont la synchronisation verticale est désactivée (vsync-off).
- Extraction des noms de fournisseurs GLX à partir du pilote vidéo afin de sélectionner la bibliothèque cliente GLX appropriée (par exemple Mesa ou NVIDIA).
- La prise en charge des objets de synchronisation DRI3 1.4 a été implémentée à l'aide des primitives drm_syncob du sous-système principal DRM (Direct Rendering Manager).
- Ajout de la prise en charge de l'algorithme de suivi des modifications d'écran pour redessiner non pas tout le contenu, mais uniquement les parties modifiées, utilisé dans les compositions. серверах Wayland basé sur la bibliothèque wlroots.
- La possibilité de dessiner des cadres de fenêtre côté serveur X11 a été mise en place.
- Mise en œuvre de l'assemblage des paquets pour l'architecture Aarch64, en plus de x86_64.
Source: opennet.ru
