A avut loc lansarea serverului X11 yserver 1.5.0, scris de la zero în limbajul Rust și care suportă extensiile actuale ale protocolului X11. Proiectul nu își propune să repete toate funcționalitățile serverului Xorg și se limitează doar la funcționalitatea necesară pentru a rula medii moderne de birou, gestioarele de feronerie, aplicațiile și bibliotecile grafice (GTK, Qt, SDL, GLFW). Dintre mediile testate se numără MATE, Xfce, Cinnamon, Sonic și Enlightenment, precum și gestioarele de feronerie precum icewm, FVWM3, openbox, i3 și wmaker. Codul proiectului este distribuit sub licența MIT.
În yserver s-a decis să nu se susțină funcționalități depreciate și specifice, cum ar fi gestionarea mai multor ecrane X11 într-un singur server (iesirea multi-monitor este suportată), modurile de culoare diferite de TrueColor, randarea indirectă (indirect GLX), API-urile driverelor DDX, metodele vechi de lucru cu fonturi și conectarea clienților cu un alt ordin de biți (translare între big-endian și little-endian).
Ieșirea grafică este organizată prin DRM/KMS și drivere Vulkan Mesa. Pentru gestionarea sesiunii și organizarea accesului la dispozitivele de intrare și ieșire partajate se folosește biblioteca libseat. Pe lângă serverul X separat, se livrează ynest — un backend pentru rulare înăuntrul altuia, care suportă funcționarea din Xwayland sau alt X11.server.
Funcționarea a fost testată pe sisteme cu GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, driver mesa RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, driver mesa ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, precum și în sisteme de virtualizare cu virtio-gpu și GPU virtual Venus. Se suportă funcționarea în Linux și FreeBSD.
În noua versiune:
- S-a adăugat suport pentru mecanismul reverse-PRIME, care permite utilizarea GPU-ului integrat pentru randare, iar GPU-ul plăcii video discrete pentru ieșirea pe ecran în situația conectării monitorilor externi la porturile plăcii video discrete.
- S-a adăugat suport pentru transmiterea datelor despre frecvența de actualizare a ecranului în Mesa prin extensia GLX_OML_sync_control.
- S-a implementat o optimizare pentru a reduce întârzierile la clienții cu sincronizarea verticală dezactivată (vsync-off).
- S-a asigurat extragerea numelui producătorilor GLX din driverul video pentru alegerea bibliotecii client GLX corespunzătoare (de exemplu, Mesa sau NVIDIA).
- S-a realizat suport pentru obiectele de sincronizare DRI3 1.4 cu implicarea primitivului drm_syncob din subsistemul nucleului DRM (Direct Rendering Manager).
- A fost adăugat suportul pentru algoritmul de urmărire a modificărilor de pe ecran pentru a redesa doar părțile modificate, aplicat în compozite servere Wayland bazat pe biblioteca wlroots.
- A fost oferită posibilitatea de a desena marginile feroneri pe partea serverului X11.
- S-a realizat o construcție de pachete pentru arhitectura Aarch64, pe lângă x86_64.
Sursa: opennet.ro
