Доступен Wayland 1.19
28 января 2021 года
Состоялся стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.19. Ветка 1.19 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Улучшена система сборки, для которой теперь требуется инструментарий Meson как минимум версии 0.52.1. Композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Изменения в приложениях, окружениях рабочего стола и дистрибутивах, связанные с Wayland:
- В Fedora 34 запланирован перевод сборки с рабочим столом KDE на использование Wayland по умолчанию. Сеанс на базе X11 планируется перевести в разряд опции. Для работы KDE при использовании проприетарных драйверов NVIDIA задействован пакет kwin-wayland-nvidia.
- В KDE ведётся работа по доведению сеанса на базе Wayland до готовности к повседневному использованию и достижению паритета в функциональности с режимом работы поверх X11. Решены проблемы с ведением скринкастов и вставкой средней кнопкой мыши. Устранены проблемы со стабильностью работы XWayland. Предоставлена возможность настройки скорости перемещения мыши и прокрутки. В KWin проведён большой рефакторинг кода, отвечающего за композитинг, что позволило добиться снижения задержек для всех операций, связанных со сведением разных объектов на экране. В KWin также реализована техника подрезки границ субповерхностей (subsurface clipping), решающая проблему с мерцанием во многих приложениях. Реализована возможность работы на системах с несколькими GPU и подключения мониторов с разной частотой обновления экрана.
- Началось развитие KWinFT, форка KWin, сфокусированного на Wayland. Проект также развивает библиотеку wrapland с реализацией обвязки над libwayland для Qt/C++, продолжающей развитие KWayland, но избавленной от привязки к Qt.
- В GNOME для Wayland исключена отрисовка всего экрана при использовании буферов dma-buf или EGLImage в пользу частичного обновления окон, снижающего объем данных, передаваемых между GPU и CPU. В сочетании с независимым обновлением элементов интерфейса указанная оптимизация позволила существенно снизить энергопотребление при автономной работе от аккумулятора. Добавлена возможность назначения разных частот обновления экрана для каждого монитора.
- В GTK 4 программные интерфейсы GDK переработаны с оглядкой на использование протокола Wayland и связанных с ним концепций. Завязанные на X11 и Wayland возможности перемещены в отдельные бэкенды.
- В Firefox для Wayland обеспечено аппаратное ускорение WebGL и видео. Добавлен новый бэкенд, использующего механизм DMABUF для отрисовки в текстуры и организации совместного использования буферов разными процессами. Данный бэкенд позволил реализовать в сборках Firefox на базе Wayland унифицированное рабочее GL-окружение, не привязанное к конкретным композитным серверам, таким как GNOME Mutter или KDE Kwin.
При работе в окружении GNOME на базе Wayland включён по умолчанию движок композитинга WebRender.
- В Chromium и Electron добавлена поддержка Wayland, основанная на прослойке ozone-wayland, предоставляющей адаптированный для работы с Wayland набор C++ классов Ozone, используемых в Chromium для абстрагирования вывода на различные оконные системы.
- Началась работа по портированию NetBSD для поддержки графического стека на базе Wayland.
- Основан проект по реализации полноценной поддержки управления цветом и HDR (High Dynamic Range) в протоколе Wayland.
- Началась разработка Wayland-драйвера для Wine, который позволит запускать Windows-игры в окружениях на базе Wayland.
- Дистрибутив Tails наметил перевод пользовательского окружения на использование протокола Wayland, что позволит повысить защищённость всех графических приложений за счёт улучшения контроля за тем, как приложения взаимодействуют с системой.
- Продолжается работа по портированию приложений MATE для Wayland. Для работы без привязки к X11 в окружении Wayland адаптирован просмотрщик изображений Eye of MATE. Улучшена поддержка Wayland в панели MATE. Для использования с Wayland адаптированы апплеты panel-multimonitor и panel-background.
- Для DDX-сервера XWayland подготовлены патчи, которые при наличии в системе проприератных драйверов NVIDIA позволят использовать аппаратное ускорение в OpenGL и Vulkan при запуске X-приложений в Wayland-окружениях.
- В проприетарных драйверах NVIDIA продолжена реализация расширений, необходимой для полноценной работы окружений, использующих протокол Wayland.
- Продолжается развитие Mir как композитного сервера для Wayland. В средствах для обеспечения запуска Wayland-приложений в окружении Mir реализовано корректное масштабирование на экранах HiDPI. Добавлена возможность масштабирования вывода Wayland-клиентов. Для каждого устройства вывода разрешено устанавливать отдельные настройки масштабирования, в том числе дробные значения масштаба.
Добавлена возможность добавления и удаления расширений протокола Wayland. Добавлена поддержка экспериментальных протоколов: zwp_linux_dmabuf_unstable_v1 для создания буферов wl_buffers с использованием механизма DMABUF и wlr-foreign-toplevel-management для подключения собственных панелей и переключателей окон.
- Сформированы новые выпуски пользовательского окружения Sway и композитного сервера Wayfire, использующих Wayland.
- Продолжается работа над выпуском пользовательского окружения LXQt 1.0.0, в котором будет реализована полноценная поддержка работы поверх Wayland.
- Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish 2, webOS Open Source Edition, Tizen и AsteroidOS;
- Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон.
Wayland решает многие проблемы с безопасностью X11, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK, Qt, SDL ( начиная с выпуска 2.0.2), Clutter и EFL (Enlightenment Foundation Library). Начиная с Qt 5.4 в состав включён модуль QtWayland с реализацией компонентов для работы Qt-приложений в окружении композитного сервера Weston, развиваемого проектом Wayland.
Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11, другого композитного сервера Wayland, фреймбуфера и RDP. Кроме того, развиваются проекты по обеспечению работы поверх графического стека платформы Android.
В рамках проекта Weston развивается одна из реализаций композитного сервера. В роли композитного сервера также может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в KWin. В текущем виде Weston уже вышел за рамки набора примеров для тестирования протокола Wayland и может обрастать функциональностью через плагины и дополнения. Пользовательские оболочки и расширенные функций управления окнами предлагается реализовывать в форме внешних бэкендов к Weston.
Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.