X11-server yserver 1.5.0 er ute, utviklet fra bunnen av i Rust og støtter nåværende utvidelser av X11-protokollen. Prosjektet har ikke som mål å replikere alle funksjoner fra Xorg Server, men er begrenset til den nødvendige funksjonaliteten for å kjøre moderne skrivebordsmiljøer, vindusbehandlere, applikasjoner og grafiske biblioteker (GTK, Qt, SDL, GLFW). De testede miljøene inkluderer MATE, Xfce, Cinnamon, Sonic og Enlightenment, samt vindusbehandlere som icewm, FVWM3, openbox, i3 og wmaker. Koden distribueres under MIT-lisensen.
I yserver er det besluttet å ikke støtte utdaterte og spesifikke funksjoner, som håndtering av flere X11-skjermer på én gang (flermonitorutgang støttes), ulike TrueColor-fargerom, indirekte rendering (indirect GLX), DDX-driver-APIer, gamle metoder for håndtering av skrifttyper og tilkobling av klienter med en annen byte-rekkefølge (oversettelse mellom big-endian og little-endian). serveren (Flermonitorutgang støttes), ulike fargemodus enn TrueColor, indirekte rendering (indirect GLX), DDX-driver-APIer, gamle måter å håndtere skrifttyper på og tilkobling av klienter med forskjellig byte-rekkefølge (oversettelse mellom big-endian og little-endian).
Grafikkutgangen er organisert gjennom DRM/KMS og Vulkan-drivere fra Mesa. For håndtering av økter og organisering av tilgang til delte inndata- og utdataenheter, brukes bibliotektet libseat. I tillegg til den distinkte X-serveren, leveres ynest — en backend for innholdt kjøring som støtter drift fra Xwayland eller annen X11.serveren.
Arbeidet er testet på systemer med GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, mesa-driver RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, mesa-driver ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, samt i virtualiseringssystemer med virtio-gpu og virtuell GPU Venus. Drift støttes på Linux og FreeBSD.
I den nye versjonen:
- Støtte for reverse-PRIME-mekanismen er lagt til, noe som gjør det mulig å bruke den integrerte GPU-en til rendering, mens den diskrete GPU-en brukes til skjermutgang når eksterne skjermer er koblet til portene på den diskrete GPU-en.
- Støtte for å overføre skjermoppdateringsfrekvensdata til Mesa via GLX_OML_sync_control-utvidelsen er lagt til.
- Optimaliseringer er implementert for å redusere latens for klienter med vertikal synkronisering deaktivert (vsync-off).
- Det er mulig å hente produsentnavnene for GLX fra videodriveren for å velge riktig klientbibliotek for GLX (f.eks. Mesa eller NVIDIA).
- Støtte for DRI3 1.4 synkroniseringsobjekter er implementert ved hjelp av drm_syncob-primitiver fra DRM (Direct Rendering Manager) kjernesubsystemet.
- Støtte for endringssporing på skjermen for å oppdatere bare de endrede delene, snarere enn hele innholdet, er lagt til kompositt-miljøer. servere Wayland-basert på wlroots-biblioteket.
- Mulighet for å tegne vindusrammer på X11-server-siden er blitt gitt.
- Bygging av pakker for Aarch64-arkitektur er implementert, i tillegg til x86_64.
Kilde: opennet.ru
