Predstavený KWinFT, fork KWin zameraný na Wayland

Roman Gilg, zúčastňujúci sa pri vývoji KDE, Wayland, Xwayland a X Server, predložené projekt KWinFT (KWin Fast Track), vývoj flexibilného a ľahko použiteľného správcu kompozitných okien pre Wayland a X11 na základe kódovej základne Vyhrať. Okrem správcu okien projekt vyvíja aj knižnicu wrapland s implementáciou väzby cez libwayland pre Qt/C++, pokračujúci vývoj KWayland, ale oslobodený od väzby na Qt. Kód je distribuovaný pod licenciami GPLv2 a LGPLv2.

Cieľom projektu je recyklovať pomocou KWin a KWayland
moderné technológie a postupy vývoja, ktoré umožňujú urýchliť vývoj projektu, refaktorovať kód, pridať optimalizácie a zjednodušiť pridávanie zásadných inovácií, ktorých integrácia do KWin v súčasnej podobe je náročná. KWinFT a Wrapland môžu byť použité na bezproblémové nahradenie KWin a KWayland, ale nie sú obmedzené KWin lock-in mnohých produktov, kde je zachovanie plnej kompatibility prioritou, ktorá bráni inováciám napredovať.

S KWinFT majú vývojári voľnú ruku na experimentovanie s novými funkciami pri zachovaní stability pomocou modernejších vývojových techník. Napríklad na kontrolu kódu KWinFT sa používa systém kontinuálnej integrácie vrátane overovania pomocou rôznych linterov, automatického generovania zostáv a rozšíreného testovania. Pokiaľ ide o vývoj funkcionality, hlavným zameraním KWinFT bude poskytovanie vysokokvalitnej a kompletnej podpory protokolov
Wayland, vrátane prepracovania architektonických prvkov KWin, ktoré komplikujú integráciu s Waylandom.

Medzi experimentálne inovácie, ktoré už boli pridané do KWinFT, patria:

  • Proces skladania bol prepracovaný, čo výrazne zlepšilo vykresľovanie obsahu, na ktorom beží X11 a Wayland. Navyše bol pridaný časovač, ktorý minimalizuje oneskorenia medzi vytvorením snímky a jej zobrazením na obrazovke.
  • Implementované rozšírenie protokolu Wayland "zobrazovač", čo klientovi umožňuje vykonávať škálovanie na strane servera a orezávanie hrán povrchu. V kombinácii s ďalším veľkým vydaním XWayland bude rozšírenie poskytovať možnosť emulovať zmeny rozlíšenia obrazovky pre staršie hry.
  • Plná podpora pre rotáciu a zrkadlenie výstupu pre relácie založené na Wayland.

Wrapland poskytuje programovacie rozhranie v štýle Qt, ktoré poskytuje prístup k funkciám libwayland vo forme jednoducho použiteľnej v projektoch C++. Wrapland sa pôvodne plánoval vyvinúť ako vidlica KWaylandu, ale kvôli nevyhovujúcemu stavu kódu KWayland sa o ňom teraz uvažuje ako o projekte úplnej revízie KWaylandu. Najdôležitejší rozdiel medzi Wraplandom a KWaylandom je v tom, že už nie je viazaný na Qt a dá sa použiť samostatne bez inštalácie Qt. V budúcnosti môže byť Wrapland použitá ako univerzálna knižnica s C++ API, čím sa eliminuje potreba vývojárov používať libwayland C API.

Pre používateľov Manjaro Linux sú vytvorené hotové balíčky. Ak chcete použiť KWinFT, stačí nainštalovať kwinft z úložiska a ak sa chcete vrátiť späť na štandardný KWin, nainštalujte balík kwin. Použitie Wraplandu sa neobmedzuje len na KDE, na použitie je napríklad pripravená klientská implementácia wlroots výstupný riadiaci protokol, ktorý umožňuje v kompozitných serveroch založených na wlroots (hojdať, Wayfire) použite KScreen na prispôsobenie výstupu.

Do tej doby, ďalej budú zverejnené aktualizácie projektu KWin-nízka latencia, tvoriace vydanie kompozitného manažéra KWin so záplatami na zvýšenie odozvy rozhrania a odstránenie niektorých problémov spojených s rýchlosťou odozvy na akcie používateľa, ako je napríklad zasekávanie vstupu. Okrem DRM VBlank, KWin-lowlatency podporuje použitie glXWaitVideoSync, glFinish alebo NVIDIA VSync na zabezpečenie ochrany proti roztrhnutiu bez negatívneho vplyvu na odozvu (pôvodná ochrana proti roztrhnutiu KWin je implementovaná pomocou časovača a môže viesť k veľkým latenciám (až 50 ms) výstupu a v dôsledku toho oneskorenie odozvy pri vstupe). Nové vydania KWin-lowlatency možno použiť namiesto skladového kompozitného servera v KDE Plasma 5.18.

Zdroj: opennet.ru

Pridať komentár