Ua hoʻokomo ʻia ʻo KWinFT, kahi lāʻau o KWin i kālele ʻia ma Wayland

Roman Gilg, komo ana i ka hoʻomohala ʻana o KDE, Wayland, Xwayland a me X Server, hoopuka o ka hana KWinFT (KWin Fast Track), ka hoʻomohala ʻana i kahi mea hoʻokele puka aniani maʻalahi a maʻalahi hoʻi e hoʻohana no Wayland a me X11 e pili ana i ka codebase Lanakila. Ma waho aʻe o ka luna puka makani, kūkulu pū ka papahana i kahi waihona ʻāina uhi me ka hoʻokō ʻana i kahi hoʻopaʻa ʻana ma luna o libwayland no Qt/C++, hoʻomau i ka hoʻomohala ʻana KWayland, aka ua hookuuia mai ka paa ana ia Qt. Hāʻawi ʻia ke code ma lalo o nā laikini GPLv2 a me LGPLv2.

ʻO ka pahuhopu o ka papahana ʻo ia ka hoʻohana hou ʻana iā KWin a me KWayland
nā ʻenehana hou a me nā hana hoʻomohala e hiki ai iā ʻoe ke wikiwiki i ka hoʻomohala ʻana i ka papahana, refactor i ke code, hoʻohui i nā optimizations a maʻalahi i ka hoʻohui ʻana o nā mea hou, ʻo ka hoʻohui ʻana i loko o KWin i kona ʻano o kēia manawa he paʻakikī. Hiki ke hoʻohana ʻia ʻo KWinFT a me Wrapland e hoʻololi maʻalahi iā KWin a me KWayland, akā ʻaʻole lākou i kaupalena ʻia e ka KWin lock-in o nā huahana he nui kahi e mālama ai i ka hoʻokō piha i mea nui e pale ai i ka hana hou mai ka neʻe ʻana i mua.

Me KWinFT, loaʻa i nā mea hoʻomohala ka lima manuahi e hoʻokolohua me nā hiʻohiʻona hou me ka mālama ʻana i ke kūpaʻa ma o ka hoʻohana ʻana i nā ʻenehana hoʻomohala hou. No ka laʻana, no ka nānā ʻana i ka code KWinFT, hoʻohana ʻia kahi ʻōnaehana hoʻohui mau, me ka hōʻoia ʻana me ka hoʻohana ʻana i nā linters like ʻole, ka hoʻokumu ʻana o nā hui a me nā hoʻokolohua holomua. Ma ke ʻano o ka hoʻomohala hana, ʻo ka manaʻo nui o KWinFT e hāʻawi i ke kākoʻo protocol kiʻekiʻe a piha
ʻO Wayland, me ka hana hou ʻana i nā hiʻohiʻona hoʻolālā KWin e paʻakikī i ka hoʻohui ʻana me Wayland.

Ma waena o nā mea hou hoʻokolohua i hoʻohui ʻia iā KWinFT:

  • Ua hana hou ʻia ke kaʻina hana haku mele, kahi i hoʻomaikaʻi maikaʻi ai i ka hoʻolilo ʻana i nā ʻike e holo ana i X11 a me Wayland. Hoʻohui ʻia, ua hoʻohui ʻia kahi manawa e hōʻemi i ka lohi ma waena o ka hana ʻana o kahi kiʻi a me kāna hōʻike ma ka pale.
  • Ua hoʻokō ʻia kahi hoʻonui i ka protocol Wayland "mea nānā", e ʻae ana i ka mea kūʻai aku e hana i ka scaling ʻaoʻao-server a me ka ʻoki ʻana i nā kihi ʻili. Hoʻohui ʻia me ka hoʻokuʻu nui ʻana o XWayland, e hāʻawi ka hoʻonui i ka hiki ke hoʻohālikelike i nā loli hoʻonā pale no nā pāʻani kahiko.
  • Kākoʻo piha no ka hoʻololi ʻana a me ka hoʻohālikelike ʻana i nā puka no nā kau ma Wayland.

Hāʻawi ʻo Wrapland i kahi polokalamu hoʻolālā Qt-style e hāʻawi i ke komo i nā hana libwayland ma kahi ʻano maʻalahi e hoʻohana i nā papahana C++. Ua hoʻolālā mua ʻia ʻo Wrapland e hoʻomohala ʻia ma ke ʻano he mākia o KWayland, akā ma muli o ke kūlana maikaʻi ʻole o ka code KWayland, ua manaʻo ʻia ʻo ia he papahana e hoʻoponopono hou iā KWayland. ʻO ka ʻokoʻa koʻikoʻi ma waena o Wrapland a me KWayland ʻaʻole ia i hoʻopaʻa hou ʻia iā Qt a hiki ke hoʻohana ʻokoʻa me ka hoʻokomo ʻole ʻana iā Qt. I ka wā e hiki mai ana, hiki ke hoʻohana ʻia ʻo Wrapland ma ke ʻano he waihona puni honua me kahi C++ API, e hoʻopau ana i ka pono o nā mea hoʻomohala e hoʻohana i ka libwayland C API.

Hana ʻia nā pūʻolo i mākaukau no nā mea hoʻohana ʻo Manjaro Linux. No ka hoʻohana ʻana iā KWinFT, e hoʻokomo wale i ka kwinft mai ka waihona, a e ʻōwili hou i ka KWin maʻamau, e hoʻokomo i ka pūʻolo kwin. ʻAʻole i kaupalena ʻia ka hoʻohana ʻana o Wrapland iā KDE, no ka laʻana, ua hoʻomākaukau ʻia kahi mea kūʻai aku no ka hoʻohana ʻana ma wlroots ka protocol control output, e ʻae ana i nā kikowaena composite e pili ana i nā wlroots (Holo, Ke ahi ala) e hoʻohana iā KScreen e hoʻopilikino i ka hopena.

ʻOiai, hoʻomau e paʻi ʻia nā mea hou o ka papahana KWin-lowlatency, e hoʻokumu i kahi paʻi o ka luna hoʻonohonoho KWin me nā pākuʻi e hoʻonui i ka pane o ka interface a hoʻoponopono i kekahi mau pilikia e pili ana i ka wikiwiki o ka pane ʻana i nā hana mea hoʻohana, e like me ka hoʻokomo stuttering. Ma waho aʻe o DRM VBlank, kākoʻo ʻo KWin-lowlatency i ka hoʻohana ʻana i ka glXWaitVideoSync, glFinish a i ʻole NVIDIA VSync e hāʻawi i ka pale ʻana i ka haehae ʻana me ka ʻole o ka hopena maikaʻi ʻole i ka pane ʻana (hoʻohana ʻia ka pale ʻana o KWin me ka hoʻohana ʻana i ka manawa a hiki ke alakaʻi i nā latencies nui (a hiki i 50ms) puka. a ʻo ka hopena, he lohi i ka pane ke hoʻokomo). Hiki ke hoʻohana ʻia nā hoʻokuʻu hou o KWin-lowlatency ma kahi o ka server composite stock ma KDE Plasma 5.18.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka