După nouă luni de dezvoltare, a fost lansată o versiune stabilă a serverului compozit Weston 15.0, care dezvoltă tehnologii ce facilitează suportul complet pentru protocolul Wayland în Enlightenment, GNOME, KDE și alte medii de utilizator. Dezvoltarea Weston își propune să ofere o bază de cod de înaltă calitate și exemple de lucru pentru utilizarea Wayland în medii desktop și soluții încorporate, cum ar fi platforme pentru sisteme de infotainment auto, smartphone-uri, televizoare și alte dispozitive de consum. Codul proiectului este distribuit sub licența MIT.
Modificările în noua ramură Weston:
- A fost adăugată o nouă interfață grafică «lua-shell» (invocată ca «weston —shell=lua»), care permite utilizarea limbajului Lua pentru personalizarea comportamentului gestionării ferestrelor și crearea de medii de utilizator complet personalizate. Ca exemplu, pe baza «lua-shell» a fost implementat un sistem simplu de gestionare a ferestrelor.
- A fost adăugat un backend experimental de redare, care folosește API-ul grafic Vulkan (activat ca «weston —renderer=vulkan»). Backend-ul permite rularea Weston deasupra altor compozite bazate pe Wayland și X11, și de asemenea lucrează direct cu driverele subsistemului DRM al nucleului, care suportă Vulkan 1.0. În plus față de backend, au fost adăugați clienții Wayland simple-vulkan și simple-dmabuf-vulkan. servere A fost adăugat suport pentru protocoalele Wayland commit-timing-v1 și fifo-v1. Protocolul commit-timing permite asocierea unei restricții de timp cu conținutul suprafeței (serverul compozit trebuie să reflecte modificarea conținutului în cel mai scurt timp posibil, dar nu mai devreme). Protocolul fifo implementează un mecanism FIFO de gestionare a cozii de actualizare a conținutului suprafeței afişate. Împreună, aceste protocoale permit obținerea unei redări fluente și a unui afișaj al cadrelor cu respectarea desfășurării verticale în aplicații precum jocurile și redarea videoclipurilor. A fost adăugat suport pentru extensiile Vulkan VK_KHR_present_id2 și VK_KHR_present_wait2, care permit transmiterea cadrelor în modul FIFO, dar fără a crește întârzierile.
- A fost adăugată suport pentru protocoalele Wayland commit-timing-v1 și fifo-v1. Protocolul commit-timing permite legarea unei restricții de timp de conținutul suprafeței (serverul compozit trebuie să reflecte schimbarea conținutului cât mai curând posibil, dar nu mai devreme). Protocolul fifo implementează un mecanism FIFO pentru gestionarea cozii de actualizare a conținutului suprafeței afișate. Împreună, aceste protocoale permit obținerea unei redări fluente și a unui afișaj al cadrelor având în vedere desfășurarea verticală în aplicații precum jocurile și redarea video. A fost adăugat suport pentru extensiile Vulkan VK_KHR_present_id2 și VK_KHR_present_wait2, care permit transmisia cadrelor în modul FIFO, dar fără a crește întârzierile.
- S-a adăugat suport pentru protocolul color-representation-v1 Wayland pentru determinarea reprezentării culorilor a suprafeței Wayland, necesară pentru suportul HDR și redarea corectă a bufferelor YUV color full. Protocolul permite clienților Wayland să trimită metadate necesare pentru a defini transparența, modelul de culoare, subdiscretizarea și intervalul de cuantizare, aplicate la conversia bufferului cu datele modelului de culoare YUV în reprezentarea RGB. S-a adăugat suport pentru formate de pixeli cu 10 biți pe canal, cum ar fi NV15, NV20, NV30 și P030.
- S-a adăugat capacitatea de a activa modulele kernel KMS (Kernel Mode Setting) pentru descărcarea operațiunilor de conversie a culorilor pe partea controllerului de display.
- S-a oferit posibilitatea utilizării profiler-ului Perfetto pentru a identifica problemele de performanță la redare și pentru a urmări și vizualiza timpul de execuție al diferitelor operațiuni.
- În backend-ul DRM, s-a adăugat suport de bază pentru mecanismul VRR (Variable Refresh Rate), care ajustează adaptiv frecvența de actualizare a monitorului pentru a asigura fluiditate și a preveni ruperea imaginii în timpul jocurilor și redării video. Pentru utilizare, este necesar un driver DRM compatibil cu VRR.
Sursa: opennet.ro
