Ang KWinFT, usa ka tinidor sa KWin nga naka-focus sa Wayland, gipaila

Roman Gilg, pag-apil sa pagpalambo sa KDE, Wayland, Xwayland ug X Server, gipaila ang proyekto KWinFT (KWin Fast Track), pagpalambo sa usa ka flexible ug dali gamiton nga composite window manager alang sa Wayland ug X11 base sa codebase Kwin. Gawas pa sa tagdumala sa bintana, ang proyekto nagpalambo usab usa ka librarya wrapland uban ang pagpatuman sa usa ka pagbugkos sa libwayland alang sa Qt / C ++, padayon nga pag-uswag KWayland, apan gipagawas gikan sa pagbugkos sa Qt. Ang code giapod-apod ubos sa GPLv2 ug LGPLv2 nga mga lisensya.

Ang tumong sa proyekto mao ang pag-recycle sa KWin ug KWayland gamit
mga modernong teknolohiya ug mga gawi sa pag-uswag nga nagtugot kanimo sa pagpadali sa pag-uswag sa proyekto, pag-refactor sa code, pagdugang sa mga pag-optimize ug pagpayano sa pagdugang sa mga sukaranan nga mga inobasyon, ang paghiusa niini sa KWin sa karon nga porma niini lisud. Ang KWinFT ug Wrapland mahimong magamit aron hapsay nga ilisan ang KWin ug KWayland, apan dili kini limitado sa KWin lock-in sa daghang mga produkto diin ang pagpadayon sa hingpit nga pagkaangay usa ka prayoridad nga nagpugong sa kabag-ohan sa pagpadayon.

Uban sa KWinFT, ang mga developers adunay libre nga kamot sa pag-eksperimento sa mga bag-ong feature samtang nagmintinar sa kalig-on pinaagi sa paggamit sa mas modernong mga pamaagi sa pagpalambo. Pananglitan, aron masusi ang code sa KWinFT, gigamit ang usa ka padayon nga sistema sa panagsama, lakip ang pag-verify gamit ang lainlaing mga linter, awtomatikong paghimo sa mga asembliya ug advanced nga pagsulay. Sa mga termino sa pag-uswag sa pagpaandar, ang panguna nga pokus sa KWinFT mao ang paghatag og taas nga kalidad ug kompleto nga suporta sa protocol
Wayland, lakip ang pag-rework sa KWin nga mga bahin sa arkitektura nga nagpakomplikado sa paghiusa sa Wayland.

Lakip sa mga eksperimento nga inobasyon nga nadugang na sa KWinFT mao ang:

  • Ang proseso sa pag-composite gi-rework, nga nakapauswag pag-ayo sa rendering sa content nga nagdagan sa X11 ug Wayland. Dugang pa, ang usa ka timer gidugang aron maminusan ang mga paglangan tali sa paghimo sa usa ka imahe ug ang pagpakita niini sa screen.
  • Nagpatuman ug extension sa Wayland protocol "tiglantaw", nagtugot sa kliyente sa paghimo sa server-side scaling ug trimming sa mga sulab sa ibabaw. Inubanan sa sunod nga mayor nga pagpagawas sa XWayland, ang extension maghatag sa abilidad sa pagsundog sa mga pagbag-o sa resolusyon sa screen alang sa mas daan nga mga dula.
  • Bug-os nga suporta para sa rotating ug mirroring output para sa Wayland-based session.

Ang Wrapland naghatag ug Qt-style programming interface nga naghatag ug access sa libwayland functions sa porma nga sayon ​​gamiton sa C++ nga mga proyekto. Ang Wrapland orihinal nga giplano nga pauswagon isip usa ka tinidor sa KWayland, apan tungod sa dili maayo nga kahimtang sa KWayland code, kini karon giisip nga usa ka proyekto sa hingpit nga pagtrabaho pag-usab sa KWayland. Ang labing hinungdanon nga kalainan tali sa Wrapland ug KWayland mao nga wala na kini gihigot sa Qt ug mahimong magamit nga gilain nga wala i-install ang Qt. Sa umaabot, ang Wrapland mahimong magamit isip usa ka unibersal nga librarya nga adunay usa ka C++ API, nga magwagtang sa panginahanglan alang sa mga developers sa paggamit sa libwayland C API.

Ang mga andam nga mga pakete gihimo alang sa mga tiggamit sa Manjaro Linux. Aron magamit ang KWinFT, i-install lang ang kwinft gikan sa repository, ug aron i-roll balik sa standard nga KWin, i-install ang kwin package. Ang paggamit sa Wrapland dili limitado sa KDE, pananglitan, ang pagpatuman sa kliyente giandam na para magamit sa wlroots output control protocol, nga nagtugot sa mga composite server base sa wlroots (Pagdali, Wayfire) gamita ang KScreen para ipasadya ang output.

Samtang magpadayon ang mga update sa proyekto imantala KWin-lowlatency, nagporma ug edisyon sa KWin composite manager nga adunay mga patch aron madugangan ang pagtubag sa interface ug ayuhon ang pipila ka problema nga nalangkit sa katulin sa pagtubag sa mga aksyon sa user, sama sa input stuttering. Dugang sa DRM VBlank, gisuportahan sa KWin-lowlatency ang paggamit sa glXWaitVideoSync, glFinish o NVIDIA VSync aron mahatagan og proteksyon batok sa pagkagisi nga wala’y negatibo nga epekto sa pagtubag (ang orihinal nga proteksyon sa paggisi sa KWin gipatuman gamit ang usa ka timer ug mahimong mosangput sa daghang mga latency (hangtod sa 50ms) nga output ug, isip resulta, usa ka paglangan sa tubag kon input). Ang mga bag-ong pagpagawas sa KWin-lowlatency mahimong magamit imbes sa stock composite server sa KDE Plasma 5.18.

Source: opennet.ru

Idugang sa usa ka comment