Ipinakilala ang KWinFT, isang KWin fork na nakatuon sa Wayland

Roman Gilg, nakikilahok sa pagbuo ng KDE, Wayland, Xwayland at X Server, ipinakilala proyekto KWinFT (KWin Fast Track), pagbuo ng isang flexible at madaling gamitin na composite window manager para sa Wayland at X11 batay sa codebase Kwin.. Bilang karagdagan sa window manager, ang proyekto ay bumuo din ng isang library wrapland sa pagpapatupad ng isang pagbubuklod sa libwayland para sa Qt/C++, patuloy na pag-unlad KWayland, ngunit napalaya mula sa pagbubuklod sa Qt. Ang code ay ipinamahagi sa ilalim ng mga lisensya ng GPLv2 at LGPLv2.

Ang layunin ng proyekto ay i-recycle ang KWin at KWayland gamit
mga modernong teknolohiya at mga kasanayan sa pag-unlad na nagbibigay-daan sa iyo upang pabilisin ang pagbuo ng proyekto, refactor ang code, magdagdag ng mga pag-optimize at pasimplehin ang pagdaragdag ng mga pangunahing pagbabago, ang pagsasama nito sa KWin sa kasalukuyang anyo nito ay mahirap. Maaaring gamitin ang KWinFT at Wrapland upang walang putol na palitan ang KWin at KWayland, ngunit hindi ito nalilimitahan ng KWin lock-in ng maraming produkto kung saan ang pagpapanatili ng ganap na compatibility ay isang priyoridad na pumipigil sa pagbabago sa pagsulong.

Sa KWinFT, may libreng kamay ang mga developer na mag-eksperimento sa mga bagong feature habang pinapanatili ang katatagan sa pamamagitan ng paggamit ng mas modernong mga diskarte sa pag-unlad. Halimbawa, upang suriin ang code ng KWinFT, ginagamit ang isang tuluy-tuloy na sistema ng pagsasama, kabilang ang pag-verify gamit ang iba't ibang mga linter, awtomatikong pagbuo ng mga pagtitipon at malawak na pagsubok. Sa mga tuntunin ng pagpapaunlad ng functionality, ang pangunahing pokus ng KWinFT ay sa pagbibigay ng mataas na kalidad at kumpletong suporta sa protocol
Wayland, kabilang ang mga reworking feature ng arkitektura ng KWin na nagpapalubha sa pagsasama sa Wayland.

Kabilang sa mga eksperimental na inobasyon na naidagdag na sa KWinFT ay:

  • Ang proseso ng pag-composite ay muling ginawa, na lubos na nagpabuti sa pag-render ng nilalamang tumatakbo sa X11 at Wayland. Bilang karagdagan, ang isang timer ay idinagdag upang mabawasan ang mga pagkaantala sa pagitan ng paglikha ng isang imahe at pagpapakita nito sa screen.
  • Nagpatupad ng extension sa Wayland protocol "viewporterβ€œ, na nagpapahintulot sa kliyente na magsagawa ng server-side scaling at trimming ng mga surface edge. Kasama ng susunod na pangunahing release ng XWayland, ang extension ay magbibigay ng kakayahang tularan ang mga pagbabago sa resolution ng screen para sa mas lumang mga laro.
  • Buong suporta para sa pag-ikot at pag-mirror ng output para sa mga session na nakabatay sa Wayland.

Nagbibigay ang Wrapland ng Qt-style programming interface na nagbibigay ng access sa mga function ng libwayland sa isang form na madaling gamitin sa mga proyekto ng C++. Ang Wrapland ay orihinal na binalak na i-develop bilang isang tinidor ng KWayland, ngunit dahil sa hindi kasiya-siyang estado ng KWayland code, ito ngayon ay isinasaalang-alang bilang isang proyekto upang ganap na ma-overhaul ang KWayland. Ang pinakamahalagang pagkakaiba sa pagitan ng Wrapland at KWayland ay hindi na ito nakatali sa Qt at maaaring gamitin nang hiwalay nang hindi ini-install ang Qt. Sa hinaharap, maaaring gamitin ang Wrapland bilang isang unibersal na library na may C++ API, na inaalis ang pangangailangan para sa mga developer na gamitin ang libwayland C API.

Ang mga handa na pakete ay nilikha para sa mga gumagamit ng Manjaro Linux. Para magamit ang KWinFT, i-install lang ang kwinft mula sa repository, at para bumalik sa karaniwang KWin, i-install ang kwin package. Ang paggamit ng Wrapland ay hindi limitado sa KDE, halimbawa, isang pagpapatupad ng kliyente ay inihanda para sa paggamit sa wlroots output control protocol, na nagpapahintulot sa mga composite server batay sa wlroots (Pag-ugoy, Wayfire) gumamit ng KScreen para i-customize ang output.

Samantala magpatuloy mai-publish ang mga update sa proyekto KWin-lowlatency, na bumubuo ng isang edisyon ng KWin composite manager na may mga patch para pataasin ang pagtugon ng interface at ayusin ang ilang problemang nauugnay sa bilis ng pagtugon sa mga aksyon ng user, tulad ng input stuttering. Bilang karagdagan sa DRM VBlank, sinusuportahan ng KWin-lowlatency ang paggamit ng glXWaitVideoSync, glFinish o NVIDIA VSync para magbigay ng proteksyon laban sa pagkapunit nang walang negatibong epekto sa pagtugon (ang orihinal na proteksyon ng tearing ng KWin ay ipinapatupad gamit ang isang timer at maaaring humantong sa malalaking latency ( hanggang 50ms) na output at, bilang resulta, isang pagkaantala sa tugon kapag nag-input). Maaaring gamitin ang mga bagong release ng KWin-lowlatency sa halip na ang stock composite server sa KDE Plasma 5.18.

Pinagmulan: opennet.ru

Magdagdag ng komento