Недавно анонсирован выпуск новой стабильной версии протокола Wayland 1.18, в котором эта новая версия совместима с предыдущими версиями на уровне API и ABI с версиями 1.x, но также содержит часть улучшений.
Для тех, кто не знает Вэйланда, они должны знать, что это протокол взаимодействия составного сервера и приложений, которые с ним работают. Клиенты независимо визуализируют свои окна по отдельности, передавая информацию об обновлении на составной сервер, который объединяет содержимое отдельных окон приложений для формирования окончательного вывода с учетом возможных нюансов, таких как перекрытие окон и прозрачность.
Другими словами, составной сервер не предоставляет API для отрисовки отдельных элементов и работает только с уже сформированными окнами устранение двойной буферизации с использованием высокоуровневых библиотек, таких как GTK + и Qt.
О Wayland
В настоящее время поддержка для прямой работы с Wayland уже реализовано для GTK3 +, Qt 5, SDL, Clutter и EFL (Библиотека Фонда Просвещения).
Взаимодействие с оборудованием в Wayland / Weston, например, инициализация, изменение видеорежимов (настройка режима DRM) и управление памятью (GEM для i915 и TTM для radeon и nouveau) видеокарт, можно сделать напрямую через модуль уровня ядра, что позволяет обойти привилегии суперпользователя.
Составной сервер Weston может работать не только с использованием модуля DRM ядра Linux, но и с X11, другим составным сервером Wayland, фреймбуфером и RDP. Кроме того, разрабатываются проекты для обеспечения работы на вершине графического стека платформы Android.
В рамках проекта Weston разрабатывается одно из развертываний составного сервера.
Любой другой продукт, поддерживающий протокол Wayland, также может выступать в качестве составного сервера.
Например, в настоящее время ведутся работы по оказанию поддержки Wayland в KWin. В своей нынешней форме Weston уже вышел за рамки набора образцов для тестирования протокола Wayland и может получить функциональность с помощью плагинов. Кроме того, предлагается реализовать собственные оболочки и расширенные функции управления окнами в виде внешних по отношению к Weston серверных программ.
Для обеспечения работы обычных приложений X11 в среде на основе Wayland используется компонент XWayland DDX (Device Dependent X), который по организации схож с работой в Xwin и Xquartz для платформ Win32 и OS X.
Поддержка запуска приложений X11 планируется интегрировать непосредственно в составной сервер Weston, который, когда дело доходит до полного приложения X11, инициирует запуск X-сервера и связанных компонентов XWayland.
При таком подходе процесс запуска приложений X11 будет простым и неотличимым для пользователя, запускающего приложения, которые работают напрямую с Wayland.
Основные улучшения Wayland 1.18
Из его новинок в анонсе упоминается, чтоe добавлена поддержка системы построения Meson., хотя возможность сборки с использованием автоинструментов все еще сохраняется, но будет удалена в следующем выпуске.
Еще одно изменение, которое выделяется в этой новой версии Wayland 1.18, - это добавлен новый API для отдельных прокси-объектов на основе тегов. Это позволяет приложениям и инструментам совместно использовать соединение Wayland.
Кроме того, добавлена функция wl_global_remove () который отправляет событие удаления глобального объекта, не очищая его.
Новая функция позволяет исключить возникновение «состояния гонки» при удалении глобальных объектов. Поскольку аналогичные условия гонки могут возникнуть из-за того, что клиенты не могут подтвердить получение события исключения. Функция wl_global_remove () позволяет сначала отправить событие удаления и только после некоторой задержки удаляет объект.
также таймеры сервера Wayland отслеживаются гарантированно в пользовательском пространстве, что исключает создание слишком большого количества файловых дескрипторов.
Единственное, в чем колесо не изобреталось заново, это переусложнение до последнего графического мультисервера, это не похоже на последнюю каплю, здесь я буду доволен X11 насколько это возможно.
PS: Вы знаете, как вернуться к SystemV, не дестабилизируя все в Debian? Заранее спасибо.