X11-servern yserver 1.5.0, skriven frÄn grunden i Rust och med stöd för nuvarande X11-protokolltillÀgg, har slÀppts. Projektet syftar inte till att replikera alla funktioner i Xorg Server och Àr begrÀnsat till den funktionalitet som krÀvs för att köra moderna skrivbordsmiljöer, fönsterhanterare, applikationer och grafiska bibliotek (GTK, Qt, SDL, GLFW). Testade miljöer inkluderar MATE, Xfce, Cinnamon, Sonic och Enlightenment, samt fönsterhanterare som icewm, FVWM3, openbox, i3 och wmaker. Projektkoden distribueras under MIT-licensen.
yserver har beslutat att inte stödja Àldre och specifika funktioner, som att hantera flera X11-skÀrmar samtidigt. server (utdata frÄn flera bildskÀrmar stöds), andra fÀrglÀgen Àn TrueColor, indirekt rendering (indirekt GLX), DDX-drivrutins-API, hantering av Àldre teckensnitt och anslutning till klienter med olika byteordning (översÀttning frÄn big-endian till little-endian).
Grafikutdata tillhandahĂ„lls via DRM/KMS och Mesa Vulkan-drivrutiner. libseat-biblioteket anvĂ€nds för sessionshantering och Ă„tkomst till delade in- och utdataenheter. Förutom en dedikerad X-server tillhandahĂ„lls ynest â ett backend för kapslad exekvering som stöder körning frĂ„n Xwayland eller andra X11-servrar.server.
Arbetet har testats pÄ system med följande grafikkort: AMD Ryzen 9 6900HX (Rembrandt, RDNA2, RADV mesa-drivrutin), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, ANV mesa-drivrutin), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, samt i virtualiseringssystem med virtio-gpu och virtuella GPU Venus. Arbetet stöds i Linux och FreeBSD.
I den nya versionen:
- Lade till stöd för reverse-PRIME-mekanismen, vilket gör det möjligt att anvÀnda den integrerade GPU:n för rendering och det separata grafikkortets GPU för visning nÀr externa bildskÀrmar Àr anslutna till de separata grafikkortsportarna.
- Lade till stöd för att skicka data om skÀrmens uppdateringsfrekvens till Mesa via GLX_OML_sync_control-tillÀgget.
- Implementerade optimeringar för att minska latensen för klienter med vertikal synkronisering inaktiverad (vsync-off).
- Tillhandahöll extrahering av GLX-leverantörsnamn frÄn grafikdrivrutinen för att vÀlja lÀmpligt GLX-klientbibliotek (t.ex. Mesa eller NVIDIA).
- Stöd för DRI3 1.4-synkroniseringsobjekt har implementerats med hjÀlp av drm_syncob-primitiver i DRM-kÀrnsystemet (Direct Rendering Manager).
- Lade till stöd för algoritmen för spÄrning av skÀrmÀndringar för att rita om inte allt innehÄll, utan endast de Àndrade delarna, som anvÀnds i kompositer servrar Wayland baserat pÄ wlroots-biblioteket.
- Möjligheten att rita fönsterramar pÄ X11-serversidan har tillhandahÄllits.
- Implementerade assemblering av paket för Aarch64-arkitekturen, utöver x86_64.
KĂ€lla: opennet.ru
