Viene introdotto KWinFT, un fork di KWin incentrato su Wayland

Romano Gilg, partecipando nello sviluppo di KDE, Wayland, Xwayland e X Server, presentata progetto KWinFT (KWin Fast Track), sviluppando un gestore di finestre composito flessibile e facile da usare per Wayland e X11 basato sul codice base Kwin. Oltre al window manager, il progetto sviluppa anche una libreria wrapland con l'implementazione di un collegamento su libwayland per Qt/C++, sviluppo continuo Kwayland, ma liberato dal legame con Qt. Il codice è distribuito sotto le licenze GPLv2 e LGPLv2.

L'obiettivo del progetto è riciclare KWin e KWayland utilizzando
tecnologie moderne e pratiche di sviluppo che consentono di accelerare lo sviluppo del progetto, rifattorizzare il codice, aggiungere ottimizzazioni e semplificare l'aggiunta di innovazioni fondamentali, la cui integrazione in KWin nella sua forma attuale è difficile. KWinFT e Wrapland possono essere utilizzati per sostituire perfettamente KWin e KWayland, ma non sono limitati dal blocco di KWin di molti prodotti in cui il mantenimento della piena compatibilità è una priorità che impedisce all'innovazione di andare avanti.

Con KWinFT, gli sviluppatori hanno mano libera per sperimentare nuove funzionalità mantenendo la stabilità attraverso l'uso di tecniche di sviluppo più moderne. Ad esempio, per verificare il codice KWinFT, viene utilizzato un sistema di integrazione continua, inclusa la verifica utilizzando diversi linter, la generazione automatica di assiemi e test approfonditi. In termini di sviluppo delle funzionalità, l'obiettivo principale di KWinFT sarà quello di fornire un supporto di protocollo completo e di alta qualità
Wayland, inclusa la rielaborazione delle funzionalità architettoniche di KWin che complicano l'integrazione con Wayland.

Tra le innovazioni sperimentali già aggiunte a KWinFT ci sono:

  • Il processo di composizione è stato rielaborato, il che ha migliorato significativamente il rendering dei contenuti con X11 e Wayland. Inoltre, è stato aggiunto un timer per ridurre al minimo i ritardi tra la creazione di un'immagine e la sua visualizzazione sullo schermo.
  • Implementata un'estensione al protocollo Wayland"visualizzatore“, consentendo al client di eseguire il ridimensionamento e il taglio lato server dei bordi della superficie. In combinazione con la prossima versione principale di XWayland, l'estensione fornirà la possibilità di emulare le modifiche alla risoluzione dello schermo per i giochi più vecchi.
  • Supporto completo per la rotazione e il mirroring dell'output per le sessioni basate su Wayland.

Wrapland fornisce un'interfaccia di programmazione in stile Qt che fornisce l'accesso alle funzioni di libwayland in un formato facile da usare nei progetti C++. Wrapland era stato originariamente progettato per essere sviluppato come un fork di KWayland, ma a causa dello stato insoddisfacente del codice di KWayland, ora viene considerato come un progetto per revisionare completamente KWayland. La differenza più importante tra Wrapland e KWayland è che non è più legato a Qt e può essere utilizzato separatamente senza installare Qt. In futuro, Wrapland potrà essere utilizzata come libreria universale con un'API C++, eliminando la necessità per gli sviluppatori di utilizzare l'API C libwayland.

Vengono creati pacchetti già pronti per gli utenti Manjaro Linux. Per utilizzare KWinFT, installa semplicemente kwinft dal repository e, per ripristinare KWin standard, installa il pacchetto kwin. L'uso di Wrapland non è limitato a KDE, ad esempio è stata preparata un'implementazione client per l'uso in wlroots protocollo di controllo dell'output, che consente l'accesso a server compositi basati su wlroots (Ondeggiare, Wayfire) usa KScreen per personalizzare l'output.

Nel frattempo, continuare verranno pubblicati gli aggiornamenti del progetto KWin-bassa latenza, formando un'edizione del gestore composito KWin con patch per aumentare la reattività dell'interfaccia e risolvere alcuni problemi associati alla velocità di risposta alle azioni dell'utente, come lo stuttering dell'input. Oltre a DRM VBlank, KWin-lowlatency supporta l'uso di glXWaitVideoSync, glFinish o NVIDIA VSync per fornire protezione contro lo strappo senza influire negativamente sulla reattività (la protezione originale dallo strappo di KWin è implementata utilizzando un timer e può portare a grandi latenze (fino a 50 ms) in uscita e, di conseguenza, un ritardo nella risposta all'input). Le nuove versioni di KWin-lowlatency possono essere utilizzate al posto del server composito standard in KDE Plasma 5.18.

Fonte: opennet.ru

Aggiungi un commento