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

Роман Гілг (Roman Gilg), бере участь у розробці KDE, Wayland, Xwayland та X Server, представив проект KWinFT (KWin Fast Track), що розвиває гнучкий і простий у використанні композитний віконний менеджер для Wayland та X11, заснований на кодовій базі перемога. Крім віконного менеджера, проект також розвиває бібліотеку. wrapland з реалізацією обв'язки над libwayland для Qt/C++, що продовжує розвиток KWayland, але позбавлений прив'язки до Qt. Код поширюється під ліцензіями GPLv2 та LGPLv2.

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

У KWinFT у розробників розв'язані руки і можуть експериментувати з новими можливостями, домагаючись збереження стабільності рахунок застосування більш сучасних технік розробки. Наприклад, для перевірки коду KWinFT задіяна система безперервної інтеграції, що включає перевірку за допомогою різних linter, автоматичне формування збірок та розширене тестування. Щодо розвитку функціональності, основна увага в KWinFT приділятиметься забезпеченню якісної та повної підтримки протоколу.
Wayland, у тому числі переробці архітектурних особливостей KWin, що ускладнюють інтеграцію з Wayland.

Серед уже доданих до KWinFT експериментальних новацій, відзначаються:

  • Перероблено процес композитингу, що дозволило значно покращити відмальовування контенту під керуванням X11 та Wayland. Додатково доданий таймер для мінімізації затримок між створенням зображення та його виведенням на екран.
  • Реалізовано розширення протоколу Wayland «viewporter«, що дозволяє клієнту виконувати дії щодо масштабування та обрізання країв поверхні на стороні сервера. У поєднанні з наступним значним випуском XWayland розширення дасть змогу емулювати зміну роздільної здатності екрану для старих ігор.
  • Повна підтримка повороту та дзеркального відображення виводу для сеансів на основі Wayland.

Wrapland надає спроектований у стилі Qt програмний інтерфейс, що надає доступ до функцій libwayland у формі, зручній для використання в проектах на С++. Спочатку Wrapland планували розвивати як форк KWayland, але через незадовільний стан коду KWayland він тепер розглядається як проект з повної переробки KWayland. Найбільш важливою відмінністю Wrapland від KWayland є звільнення від прив'язки до Qt та можливість використання окремо без встановлення Qt. У майбутньому Wrapland зможе застосовуватися як універсальна бібліотека з С++ API, що позбавляє розробників необхідності використання З API libwayland.

Готові пакети створені для користувачів Manjaro Linux. Для залучення KWinFT достатньо встановити з репозиторію kwinft, а для відкату на штатний KWin встановити пакет kwin. Використання Wrapland не обмежується KDE, наприклад, підготовлено реалізацію клієнта для застосовуваного в wlroots протоколу керування висновком, що дозволяє в композитних серверах на базі wlroots (Влада, Шляховий вогонь) використовувати KScreen для налаштування виводу.

Тим часом, продовжують публікуватись оновлення проекту KWin-lowlatency, що формує редакцію композитного менеджера KWin з патчами для збільшення чуйності інтерфейсу та виправлення деяких проблем, пов'язаних зі швидкістю реакції на дії користувача, таких як пригальмовування введення. Для надання захисту від появи розривів при виведенні (tearing) без негативного впливу на чуйність крім DRM VBlank в KWin-lowlatency підтримується використання glXWaitVideoSync, glFinish або NVIDIA VSync (спочатку присутня в KWin захист від розривів реалізований з використанням до 50мс) виведення і, як наслідок, до запізнення реакції при введенні). Нові випуски KWin-lowlatency можуть використовуватися замість штатного композитного сервера KDE Plasma 5.18.

Джерело: opennet.ru

Додати коментар або відгук