Dopo nove mesi di sviluppo, è stato pubblicato il rilascio stabile del server composito Weston 15.0, che promuove tecnologie che facilitano l'emergere di un supporto completo per il protocollo Wayland in Enlightenment, GNOME, KDE e altri ambienti desktop. Lo sviluppo di Weston mira a fornire una base di codice di alta qualità e esempi pratici per l'uso di Wayland in ambienti desktop e soluzioni integrate, come piattaforme per sistemi di infotainment automobilistici, smartphone, televisioni e altri dispositivi di consumo. Il codice del progetto è distribuito con licenza MIT.
Modifiche nel nuovo ramo di Weston:
- È stata aggiunta una nuova shell grafica "lua-shell" (chiamata come "weston --shell=lua"), che consente di utilizzare il linguaggio Lua per personalizzare il comportamento della gestione delle finestre e creare ambienti utente completamente personalizzati. Come esempio, è stato realizzato un semplice sistema di gestione delle finestre a mosaico basato su "lua-shell".
- È stato aggiunto un backend di rendering sperimentale che utilizza l'API grafica Vulkan per l'output (attivato come "weston --renderer=vulkan"). Il backend consente di eseguire Weston come un layer su altri compositori server basati su Wayland e X11, e di interagire direttamente con i driver della sottosistema DRM del kernel, che supportano Vulkan 1.0. In aggiunta al backend, sono stati aggiunti client Wayland simple-vulkan e simple-dmabuf-vulkan.
- È stato aggiunto il supporto per i protocolli Wayland commit-timing-v1 e fifo-v1. Il protocollo commit-timing consente di associare un vincolo temporale al contenuto della superficie (il server composito deve visualizzare la modifica del contenuto entro il tempo specificato, ma non prima). Il protocollo fifo implementa un meccanismo FIFO per la gestione della coda di aggiornamento del contenuto della superficie visualizzata. In combinazione, questi protocolli consentono di ottenere un'uscita fluida e una visualizzazione dei frame tenendo conto della scansione verticale in applicazioni come giochi e riproduzione video. È stato aggiunto il supporto per le estensioni Vulkan VK_KHR_present_id2 e VK_KHR_present_wait2, che consentono di ottenere la trasmissione dei frame in modalità FIFO, ma senza aumentare i ritardi.
- È stata aggiunta la supporto per il protocollo Wayland color-representation-v1 per definire la rappresentazione del colore delle superfici Wayland, necessaria per supportare l'HDR e il corretto rendering dei buffer YUV a colori completi. Il protocollo consente ai client Wayland di trasmettere i metadati necessari per determinare la trasparenza, il modello di colore, la sottocampionatura e l'intervallo di quantizzazione, utilizzati nella conversione del buffer con dati del modello di colore YUV nella rappresentazione RGB. È stato aggiunto il supporto per i formati pixel a 10 bit per canale, come NV15, NV20, NV30 e P030.
- È stata aggiunta la possibilità di sfruttare i moduli del kernel KMS (Kernel Mode Setting) per delegare le operazioni di conversione del colore al controller del display.
- È stata fornita la possibilità di utilizzare il profiler Perfetto per identificare problemi di prestazioni durante il rendering, nonché per monitorare e visualizzare i tempi di esecuzione di varie operazioni.
- Nel backend DRM è stato aggiunto il supporto di base per il meccanismo VRR (Variable Refresh Rate), che adatta dinamicamente la frequenza di aggiornamento del monitor per garantire fluidità e assenza di tearing durante i giochi e la riproduzione video. Per l'uso è necessario un driver DRM che supporti il VRR.
Fonte: opennet.ru
