KWinFT, en forgrening af KWin fokuseret på Wayland, introduceret

Roman Gilg, deltager i udvikling af KDE, Wayland, Xwayland og X Server, indsendt projekt KWinFT (KWin Fast Track), udvikler en fleksibel og brugervenlig sammensat vinduesmanager til Wayland og X11 baseret på kodebasen Kwin. Udover vinduesmanageren udvikler projektet også et bibliotek wrapland med implementering af en binding over libwayland for Qt/C++, fortsat udvikling KWayland, men frigjort for binding til Qt. Koden distribueres under GPLv2- og LGPLv2-licenser.

Målet med projektet er at genbruge KWin og KWayland vha
moderne teknologier og udviklingspraksis, der giver dig mulighed for at fremskynde udviklingen af ​​projektet, refaktorisere koden, tilføje optimeringer og forenkle tilføjelsen af ​​grundlæggende innovationer, hvis integration i KWin i sin nuværende form er vanskelig. KWinFT og Wrapland kan bruges til problemfrit at erstatte KWin og KWayland, men de er ikke begrænset af KWin-lock-in af mange produkter, hvor opretholdelse af fuld kompatibilitet er en prioritet, der forhindrer innovation i at komme videre.

Med KWinFT har udviklere frie hænder til at eksperimentere med nye funktioner og samtidig bevare stabiliteten gennem brug af mere moderne udviklingsteknikker. For at kontrollere KWinFT-koden anvendes for eksempel et kontinuerligt integrationssystem, herunder verifikation ved hjælp af forskellige linters, automatisk generering af samlinger og omfattende test. Med hensyn til funktionalitetsudvikling vil hovedfokus for KWinFT være på at levere høj kvalitet og komplet protokolsupport
Wayland, inklusive omarbejdning af KWin-arkitektoniske funktioner, der komplicerer integration med Wayland.

Blandt de eksperimentelle innovationer, der allerede er tilføjet til KWinFT, er:

  • Sammensætningsprocessen er blevet omarbejdet, hvilket har forbedret gengivelsen af ​​indhold, der kører X11 og Wayland markant. Derudover er der tilføjet en timer for at minimere forsinkelser mellem oprettelsen af ​​et billede og dets visning på skærmen.
  • Implementeret en udvidelse af Wayland-protokollen "viewporter", hvilket giver klienten mulighed for at udføre skalering på serversiden og trimning af overfladekanter. Kombineret med den næste store udgivelse af XWayland vil udvidelsen give mulighed for at efterligne ændringer i skærmopløsningen for ældre spil.
  • Fuld understøttelse af roterende og spejling af output til Wayland-baserede sessioner.

Wrapland giver en programmeringsgrænseflade i Qt-stil, der giver adgang til libwayland-funktioner i en form, der er nem at bruge i C++-projekter. Wrapland var oprindeligt planlagt til at blive udviklet som en forgrening af KWayland, men på grund af den utilfredsstillende tilstand af KWayland-koden, betragtes det nu som et projekt til fuldstændig eftersyn af KWayland. Den vigtigste forskel mellem Wrapland og KWayland er, at den ikke længere er bundet til Qt og kan bruges separat uden at installere Qt. I fremtiden kan Wrapland bruges som et universelt bibliotek med en C++ API, hvilket eliminerer behovet for udviklere til at bruge libwayland C API.

Færdiglavede pakker er skabt til Manjaro Linux-brugere. For at bruge KWinFT skal du blot installere kwinft fra lageret, og for at rulle tilbage til standard KWin skal du installere kwin-pakken. Brugen af ​​Wrapland er ikke begrænset til KDE, for eksempel er en klientimplementering blevet forberedt til brug i wlrødder outputkontrolprotokol, der tillader sammensatte servere baseret på wlroots (Sway, Wayfire) brug KScreen til at tilpasse outputtet.

I mellemtiden Blive ved projektopdateringer vil blive offentliggjort KWin-lavlatens, der danner en udgave af KWin composite manager med patches for at øge reaktionsevnen af ​​grænsefladen og løse nogle problemer forbundet med reaktionshastigheden på brugerhandlinger, såsom input-stamming. Ud over DRM VBlank understøtter KWin-lowlatency brugen af ​​glXWaitVideoSync, glFinish eller NVIDIA VSync for at give beskyttelse mod rivning uden at påvirke reaktionsevnen negativt (KWins originale rivebeskyttelse implementeres ved hjælp af en timer og kan føre til store latenser (op til 50ms) output og som følge heraf en forsinkelse i svaret ved input). Nye udgivelser af KWin-lowlatency kan bruges i stedet for den sammensatte standardserver i KDE Plasma 5.18.

Kilde: opennet.ru

Tilføj en kommentar