KWinFT, tus nkhaus ntawm KWin tsom rau Wayland, tau qhia

Roman Gilg kev koom tes hauv kev txhim kho KDE, Wayland, Xwayland thiab X Server, tswvcuab peb tes num KWinFT (KWin Fast Track), txhim kho qhov hloov pauv tau yooj yim thiab siv tau yooj yim-rau-siv cov thawj tswj qhov rais rau Wayland thiab X11 raws li codebase Kwin. Ntxiv nrog rau tus thawj tswj qhov rais, qhov project kuj tsim lub tsev qiv ntawv wrapland nrog rau kev ua raws li kev sib txuas ntawm libwayland rau Qt / C ++, txuas ntxiv txhim kho KWayland, tab sis tso tawm los ntawm kev khi rau Qt. Cov cai tau muab faib raws li GPLv2 thiab LGPLv2 cov ntawv tso cai.

Lub hom phiaj ntawm qhov project yog rov ua dua KWin thiab KWayland siv
Cov thev naus laus zis niaj hnub no thiab kev txhim kho cov kev coj ua uas tso cai rau koj kom ua kom txoj kev loj hlob ntawm qhov project, refactor cov cai, ntxiv optimizations thiab ua kom yooj yim ntxiv ntawm cov kev tsim kho tshiab, kev sib koom ua ke ntawm KWin hauv nws daim ntawv tam sim no yog qhov nyuaj. KWinFT thiab Wrapland tuaj yeem siv los hloov pauv KWin thiab KWayland tsis muaj kev txwv, tab sis lawv tsis txwv los ntawm KWin xauv-hauv ntawm ntau cov khoom uas tswj hwm kev sib raug zoo tag nrho yog qhov tseem ceeb uas tiv thaiv kev hloov pauv mus rau tom ntej.

Nrog KWinFT, cov neeg tsim khoom muaj tes dawb los sim nrog cov yam ntxwv tshiab thaum tswj kev ruaj ntseg los ntawm kev siv cov txuj ci tsim kho tshiab niaj hnub no. Piv txwv li, txhawm rau txheeb xyuas KWinFT code, siv qhov kev sib txuas txuas ntxiv mus, suav nrog kev txheeb xyuas siv cov linters sib txawv, tsis siv neeg tiam ntawm cov rooj sib txoos thiab kev sim ntau. Hais txog kev txhim kho kev ua haujlwm, lub ntsiab lus tseem ceeb ntawm KWinFT yuav yog ntawm kev muab kev pabcuam zoo thiab ua tiav raws tu qauv.
Wayland, suav nrog reworking KWin architectural nta uas cuam tshuam kev koom ua ke nrog Wayland.

Ntawm cov kev sim tshiab uas twb tau ntxiv rau KWinFT yog:

  • Cov txheej txheem sib xyaw tau rov ua haujlwm dua, uas tau txhim kho qhov ua tau zoo ntawm cov ntsiab lus khiav X11 thiab Wayland. Tsis tas li ntawd, lub timer tau ntxiv kom txo qis qeeb ntawm kev tsim cov duab thiab nws cov zaub ntawm qhov screen.
  • Ua qhov txuas ntxiv rau Wayland raws tu qauv "tus saib", tso cai rau tus neeg siv khoom los ua tus neeg rau zaub mov-sab scaling thiab trimming ntawm ntug npoo. Ua ke nrog qhov kev tso tawm loj tom ntej ntawm XWayland, qhov txuas ntxiv yuav muab lub peev xwm los ua raws li kev hloov pauv kev daws teeb meem rau cov kev ua si qub.
  • Kev txhawb nqa tag nrho rau kev tig thiab tsom iav tso zis rau Wayland-raws li kev sib tham.

Wrapland muab Qt-style programming interface uas muab kev nkag mus rau libwayland ua haujlwm hauv daim ntawv yooj yim siv hauv C ++ cov haujlwm. Wrapland yog thawj zaug tau npaj los tsim kho raws li rab rawg ntawm KWayland, tab sis vim yog lub xeev tsis txaus siab ntawm KWayland code, tam sim no tau suav tias yog ib txoj haujlwm los kho KWayland tag nrho. Qhov sib txawv tseem ceeb tshaj plaws ntawm Wrapland thiab KWayland yog tias nws tsis raug khi rau Qt lawm thiab tuaj yeem siv sib cais yam tsis tau txhim kho Qt. Yav tom ntej, Wrapland tuaj yeem siv los ua lub tsev qiv ntawv thoob ntiaj teb nrog C ++ API, tshem tawm qhov xav tau rau cov neeg tsim khoom siv libwayland C API.

Cov pob khoom npaj tau tsim rau Manjaro Linux cov neeg siv. Txhawm rau siv KWinFT, tsuas yog nruab kwinft los ntawm qhov chaw cia khoom, thiab rov qab mus rau tus qauv KWin, nruab lub pob kwin. Kev siv Wrapland tsis txwv rau KDE, piv txwv li, tus neeg siv khoom siv tau npaj rau kev siv wlroots ua tso zis tswj raws tu qauv, tso cai rau hauv composite servers raws li wlroots (Yob, Hluav Taws) siv KScreen los kho cov zis.

Lub caij no txuas ntxiv qhov project tshiab yuav raug luam tawm KWin-lowlatency, tsim ib tsab ntawm KWin composite manager nrog thaj ua rau thaj ua rau muaj kev cuam tshuam ntawm qhov cuam tshuam thiab kho qee qhov teeb meem cuam tshuam nrog kev ceev ntawm cov lus teb rau cov neeg siv kev ua, xws li kev tawm tswv yim stuttering. Ntxiv rau DRM VBlank, KWin-lowlatency txhawb kev siv glXWaitVideoSync, glFinish lossis NVIDIA VSync los muab kev tiv thaiv kev tsim kua muag yam tsis muaj kev cuam tshuam tsis zoo rau kev teb (KWin thawj tearing tiv thaiv yog siv los ntawm timer thiab tuaj yeem ua rau loj latencies (txog 50ms) tso zis thiab, raws li qhov tshwm sim, ncua sij hawm teb thaum nkag). Kev tshaj tawm tshiab ntawm KWin-lowlatency tuaj yeem siv los hloov cov khoom lag luam sib xyaw hauv KDE Plasma 5.18.

Tau qhov twg los: opennet.ru

Ntxiv ib saib