KWinFT, cabang KWin yang memfokuskan pada Wayland, diperkenalkan

Roman Gilg, mengambil bahagian dalam pembangunan KDE, Wayland, Xwayland dan X Server, diperkenalkan projek KWinFT (KWin Fast Track), membangunkan pengurus tetingkap komposit yang fleksibel dan mudah digunakan untuk Wayland dan X11 berdasarkan pangkalan kod Kwin. Sebagai tambahan kepada pengurus tetingkap, projek itu juga membangunkan perpustakaan wrapland dengan pelaksanaan pengikatan ke atas libwayland untuk Qt/C++, pembangunan yang berterusan KWayland, tetapi dibebaskan daripada terikat kepada Qt. Kod ini diedarkan di bawah lesen GPLv2 dan LGPLv2.

Matlamat projek ini adalah untuk mengitar semula KWin dan KWayland menggunakan
teknologi moden dan amalan pembangunan yang membolehkan anda mempercepatkan pembangunan projek, memfaktorkan semula kod, menambah pengoptimuman dan memudahkan penambahan inovasi asas, penyepaduan yang mana ke dalam KWin dalam bentuk semasa adalah sukar. KWinFT dan Wrapland boleh digunakan untuk menggantikan KWin dan KWayland dengan lancar, tetapi ia tidak dihadkan oleh kunci masuk KWin bagi banyak produk di mana mengekalkan keserasian penuh adalah keutamaan yang menghalang inovasi daripada bergerak ke hadapan.

Dengan KWinFT, pembangun mempunyai kebebasan untuk bereksperimen dengan ciri baharu sambil mengekalkan kestabilan melalui penggunaan teknik pembangunan yang lebih moden. Sebagai contoh, untuk menyemak kod KWinFT, sistem penyepaduan berterusan digunakan, termasuk pengesahan menggunakan linter berbeza, penjanaan automatik pemasangan dan ujian lanjutan. Dari segi pembangunan kefungsian, tumpuan utama KWinFT adalah untuk menyediakan sokongan protokol yang berkualiti tinggi dan lengkap
Wayland, termasuk mengolah semula ciri seni bina KWin yang merumitkan penyepaduan dengan Wayland.

Antara inovasi percubaan yang telah ditambahkan pada KWinFT ialah:

  • Proses penggubahan telah diolah semula, yang telah meningkatkan pemaparan kandungan yang menjalankan X11 dan Wayland dengan ketara. Selain itu, pemasa telah ditambahkan untuk meminimumkan kelewatan antara penciptaan imej dan paparannya pada skrin.
  • Melaksanakan sambungan kepada protokol Wayland "pemerhatiβ€œ, membenarkan pelanggan melakukan penskalaan dan pemangkasan bahagian tepi pelayan. Digabungkan dengan keluaran utama XWayland yang seterusnya, sambungan itu akan memberikan keupayaan untuk meniru perubahan resolusi skrin untuk permainan lama.
  • Sokongan penuh untuk keluaran berputar dan pencerminan untuk sesi berasaskan Wayland.

Wrapland menyediakan antara muka pengaturcaraan gaya Qt yang menyediakan akses kepada fungsi libwayland dalam bentuk yang mudah digunakan dalam projek C++. Wrapland pada asalnya dirancang untuk dibangunkan sebagai percabangan KWayland, tetapi disebabkan keadaan kod KWayland yang tidak memuaskan, ia kini dianggap sebagai projek untuk membaik pulih sepenuhnya KWayland. Perbezaan paling penting antara Wrapland dan KWayland ialah ia tidak lagi terikat dengan Qt dan boleh digunakan secara berasingan tanpa memasang Qt. Pada masa hadapan, Wrapland boleh digunakan sebagai perpustakaan universal dengan API C++, menghapuskan keperluan untuk pembangun menggunakan API libwayland C.

Pakej sedia dibuat dibuat untuk pengguna Manjaro Linux. Untuk menggunakan KWinFT, cuma pasang kwinft dari repositori, dan untuk kembali ke KWin standard, pasang pakej kwin. Penggunaan Wrapland tidak terhad kepada KDE, sebagai contoh, pelaksanaan klien telah disediakan untuk digunakan dalam wlroots protokol kawalan output, membenarkan dalam pelayan komposit berdasarkan wlroots (bergoyang, Jalan Api) gunakan KScreen untuk menyesuaikan output.

Sementara itu teruskan kemas kini projek akan diterbitkan KWin-latensi rendah, membentuk edisi pengurus komposit KWin dengan tampalan untuk meningkatkan responsif antara muka dan menyelesaikan beberapa masalah yang berkaitan dengan kelajuan tindak balas kepada tindakan pengguna, seperti kegagapan input. Selain DRM VBlank, KWin-lowlatency menyokong penggunaan glXWaitVideoSync, glFinish atau NVIDIA VSync untuk memberikan perlindungan terhadap koyakan tanpa memberi kesan negatif terhadap tindak balas (perlindungan koyakan asal KWin dilaksanakan menggunakan pemasa dan boleh membawa kepada keluaran kependaman yang besar (sehingga 50ms) dan, akibatnya, kelewatan dalam respons apabila input). Keluaran baharu KWin-lowlatency boleh digunakan dan bukannya pelayan komposit stok dalam KDE Plasma 5.18.

Sumber: opennet.ru

Tambah komen