Представен е KWinFT, разклонение на KWin, фокусирано върху Wayland

Роман Гилг, участващи в разработката на KDE, Wayland, Xwayland и X Server, подадено проект KWinFT (KWin Fast Track), разработване на гъвкав и лесен за използване композитен мениджър на прозорци за Wayland и X11, базиран на кодовата база Куин. В допълнение към мениджъра на прозорци, проектът разработва и библиотека обвивка с прилагането на обвързване върху libwayland за Qt/C++, продължаващо развитие KWayland, но освободен от обвързване с Qt. Кодът се разпространява под GPLv2 и LGPLv2 лицензи.

Целта на проекта е да се рециклират KWin и KWayland с помощта на
модерни технологии и практики за разработка, които ви позволяват да ускорите разработката на проекта, да преработите кода, да добавите оптимизации и да опростите добавянето на фундаментални иновации, чието интегриране в KWin в сегашния му вид е трудно. KWinFT и Wrapland могат да се използват за безпроблемна замяна на KWin и KWayland, но те не са ограничени от заключването на KWin на много продукти, където поддържането на пълна съвместимост е приоритет, който предотвратява напредъка на иновациите.

С KWinFT разработчиците имат свобода да експериментират с нови функции, като същевременно поддържат стабилност чрез използването на по-модерни техники за разработка. Например, за проверка на кода на KWinFT се използва система за непрекъсната интеграция, включително проверка с помощта на различни линтери, автоматично генериране на сглобки и обширни тестове. По отношение на развитието на функционалността, основният фокус на KWinFT ще бъде върху предоставянето на висококачествена и пълна поддръжка на протоколи
Wayland, включително преработка на архитектурни характеристики на KWin, които усложняват интеграцията с Wayland.

Сред експерименталните иновации, които вече са добавени към KWinFT, са:

  • Процесът на композиране е преработен, което значително подобри изобразяването на съдържание, работещо с X11 и Wayland. Освен това е добавен таймер за минимизиране на закъсненията между създаването на изображение и показването му на екрана.
  • Внедрено е разширение към протокола Wayland "viewporter“, което позволява на клиента да извършва мащабиране от страната на сървъра и подрязване на ръбовете на повърхността. В комбинация със следващото голямо издание на XWayland, разширението ще предостави възможност за емулиране на промени в разделителната способност на екрана за по-стари игри.
  • Пълна поддръжка за ротационен и огледален изход за базирани на Wayland сесии.

Wrapland предоставя интерфейс за програмиране в стил Qt, който осигурява достъп до функциите на libwayland във форма, лесна за използване в C++ проекти. Първоначално е планирано Wrapland да бъде разработен като разклонение на KWayland, но поради незадоволителното състояние на кода на KWayland, сега се разглежда като проект за цялостно преработване на KWayland. Най-важната разлика между Wrapland и KWayland е, че вече не е свързан с Qt и може да се използва отделно, без да се инсталира Qt. В бъдеще Wrapland може да се използва като универсална библиотека с C++ API, елиминирайки необходимостта разработчиците да използват libwayland C API.

За потребителите на Manjaro Linux се създават готови пакети. За да използвате KWinFT, просто инсталирайте kwinft от хранилището, а за да се върнете към стандартния KWin, инсталирайте пакета kwin. Използването на Wrapland не е ограничено до KDE, например клиентска реализация е подготвена за използване в wlroots протокол за контрол на изхода, позволяващ комбинирани сървъри, базирани на wlroots (люлеене, Wayfire) използвайте KScreen, за да персонализирате изхода.

В същото време, продължи ще бъдат публикувани актуализации на проекта KWin-ниска латентност, образувайки издание на съставния мениджър на KWin с корекции за увеличаване на отзивчивостта на интерфейса и коригиране на някои проблеми, свързани със скоростта на реакция на потребителски действия, като заекване при въвеждане. В допълнение към DRM VBlank, KWin-lowlatency поддържа използването на glXWaitVideoSync, glFinish или NVIDIA VSync, за да осигури защита срещу разкъсване без отрицателно въздействие върху реакцията (оригиналната защита на KWin срещу разкъсване се реализира с помощта на таймер и може да доведе до големи закъснения (до 50ms) изход и в резултат на това забавяне на отговора при въвеждане). Нови версии на KWin-lowlatency могат да се използват вместо стандартния композитен сървър в KDE Plasma 5.18.

Източник: opennet.ru

Добавяне на нов коментар