Introdotto KWinFT, un fork di KWin focalizzato su Wayland

Roman Gilg, partecipante allo sviluppo di KDE, Wayland, Xwayland e X Server, ha presentato progetto KWinFT (KWin Fast Track), che sviluppa un gestore di finestre composito flessibile e facile da usare per Wayland e X11, basato su una base di codice KWin. Oltre al gestore di finestre, il progetto sviluppa anche la libreria wrapland con un'implementazione di wrapping su libwayland per Qt/C++, continuando lo sviluppo di KWayland, ma priva del vincolo a Qt. Il codice è distribuito sotto le licenze GPLv2 e LGPLv2.

L'obiettivo del progetto è la revisione di KWin e KWayland utilizzando
tecnologie e pratiche di sviluppo moderne, che consentono di accelerare lo sviluppo del progetto, effettuare refactoring del codice, aggiungere ottimizzazioni e semplificare l'introduzione di innovazioni fondamentali, la cui integrazione in KWin nella sua forma attuale è complicata. KWinFT e Wrapland possono essere utilizzati come sostituti trasparenti di KWin e KWayland, ma non sono limitati dai vincoli imposti dal vincolo a KWin di molti prodotti, la cui piena compatibilità è una priorità che ostacola il progresso delle innovazioni.

In KWinFT gli sviluppatori hanno carta bianca e possono sperimentare nuove funzionalità, mantenendo la stabilità attraverso l'uso di tecniche di sviluppo più moderne. Ad esempio, per il controllo del codice, KWinFT utilizza un sistema di integrazione continua, che include verifiche attraverso diversi linter, generazione automatica di build e test estesi. Per quanto riguarda lo sviluppo delle funzionalità, l'attenzione principale di KWinFT sarà rivolta a garantire un supporto di qualità e completo per il protocollo
Wayland, inclusa la revisione delle peculiarità architettoniche di KWin che complicano l'integrazione con Wayland.

Tra le innovazioni sperimentali già aggiunte a KWinFT, si segnalano:

  • Il processo di compositing è stato rielaborato, consentendo un notevole miglioramento nel rendering dei contenuti gestiti da X11 e Wayland. È stato inoltre aggiunto un timer per ridurre i ritardi tra la creazione dell'immagine e la sua visualizzazione sullo schermo.
  • È stata implementata un'estensione del protocollo Wayland "viewporter", che consente al client di eseguire azioni di ridimensionamento e ritaglio dei bordi della superficie lato server. In combinazione con il prossimo significativo rilascio di XWayland, l'estensione offrirà la possibilità di emulare il cambiamento della risoluzione dello schermo per i giochi più vecchi.
  • Supporto completo della rotazione e del riflesso dell'output per le sessioni basate su Wayland.

Wrapland offre un'interfaccia programmatica progettata nello stile di Qt, fornendo accesso alle funzionalità di libwayland in una forma adatta per l'utilizzo in progetti C++. Inizialmente, Wrapland doveva essere sviluppato come un fork di KWayland, ma a causa dello stato insoddisfacente del codice di KWayland, ora è considerato un progetto di rifacimento completo di KWayland. La differenza più significativa tra Wrapland e KWayland è la rimozione del vincolo a Qt e la possibilità di utilizzarlo separatamente senza installare Qt. In futuro, Wrapland potrà essere utilizzato come libreria universale con API C++, liberando gli sviluppatori dalla necessità di utilizzare l'API C di libwayland.

I pacchetti pronti sono stati creati per gli utenti di Manjaro Linux. Per utilizzare KWinFT, è sufficiente installare il pacchetto kwinft dal repository, mentre per tornare al KWin standard, è necessario installare il pacchetto kwin. L'uso di Wrapland non è limitato a KDE; per esempio, è stata preparata un'implementazione del client per il wlroots protocollo di gestione dell'output, che consente l'uso di KScreen per la configurazione dell'output su server compositi basati su wlroots (Sway, Wayfire).

Nel frattempo, ad accettare sono in fase di pubblicazione aggiornamenti del progetto KWin-lowlatency, che crea una versione del gestore di composizione KWin con patch per aumentare la reattività dell'interfaccia e risolvere alcuni problemi legati ai tempi di risposta dell'input, come il lag nella gestione dell'input. Per fornire protezione dalla comparsa di tearing nell'output senza compromettere la reattività, oltre al DRM VBlank, in KWin-lowlatency è supportato l'uso di glXWaitVideoSync, glFinish o NVIDIA VSync (la protezione dal tearing originariamente presente in KWin è implementata utilizzando un timer e può comportare notevoli ritardi (fino a 50 ms) nell'output e, di conseguenza, ritardi nella reazione all'input). Le nuove versioni di KWin-lowlatency possono essere utilizzate al posto del server di composizione standard in KDE Plasma 5.18.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster