08.12.2023

Состоялся стабильный релиз Wayland 1.19

Состоялся стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.19. Ветка 1.19 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Улучшена система сборки, для которой теперь требуется инструментарий Meson как минимум версии 0.52.1. Композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.

Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон.

Изменения связанные с 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;
  • Для тестирования работы KDE, GNOME, Enlightenment, Wayfire, Liri и Sway поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

Источник.