Доступен Wayland 1.13

Состоялся стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.13. Ветка 1.13 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений. Кроме исправления ошибок в Wayland 1.13 реализован API для управления видимостью глобальных структур, при помощи которого композитный сервер может ограничить доступ к приватным программным интерфейсам и определить к каким частям структуры wl_global клиент имеет доступ. Следующий выпуск 1.14 запланирован на июнь 2017 года.

Ожидавшийся сегодня выпуск композитного сервера Weston 2.0 отложен до конца недели из-за выявления в последний момент ошибок, исправления для которых требуют дополнительного тестирования. Напомним, что Weston развиваются технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.

Смена номера значительной версии в Weston 2.0 обусловлена изменениями в новом API управления выводом, нарушающими совместимость c libweston на уровне ABI. Все штатные бэкенды портированы на новый API для настройки вывода. В новой версии также добавлена поддержка EGL-расширения EGL_KHR_swap_buffers_with_damage, реализованного в проприетарном драйвере NVIDIA. В бэкенде GL добавлена поддержка буферов DRM_FORMAT_YUV444. Улучшено позиционирование панелей в desktop-shell. В XWayland приведены в порядок сообщения об ошибках.

Статус поддержки Wayland в окружениях рабочего стола и дистрибутивах:

  • В рамках проекта AsteroidOS развивается новая открытая ОС для умных часов, использующая Qt5 и Wayland.
  • В находящейся в разработке ветке GNOME 3.24 продолжается оттачивание поддержки Wayland, которая ранее уже была объявлена пригодной для использования обычными пользователями. Добавлена возможность работы поверх проприетарных драйверов NVIDIA, c использованием EGLDevice и EGLStreams;
  • В Fedora 25 по умолчанию предложен сеанс GNOME на базе Wayland;
  • В Ubuntu GNOME продолжается тестирование экспериментального сеанса рабочего стола GNOME на базе Wayland (следует установить пакет gnome-session-wayland и выбрать на экране входа «GNOME on wayland»);
  • Продолжается работа по достижению паритета в функциональности при запуске KDE поверх X11 и Wayland. В KDE Plasma 5.9 при использовании Wayland стали доступны инструменты для создания скриншотов и определения цвета, обеспечены возможности раскрытия окон на весь экран без отображения рамок, задания собственных цветовых схем и перетаскивания приложений кликом на пустой области интерфейса, добавлен поддержка режима автоматического скрытия панели, добавлена поддержка управляющих жестов. Для тестирования проектом Neon подготовлены Live-сборки на базе Wayland;
  • Начиная с Qt 5.8 переведён в разряд полностью поддерживаемых модуль Qt Wayland Compositor с многопоточной системой отрисовки для встраиваемых устройств, использующая протокол Wayland. Модуль может использоваться для создания собственных композитных серверов Wayland, применяя QML или C++ API. Имеется поддержка стандарта XDG-Shell и возможность работы в системах с несколькими экранами. В качестве примера применения Qt Wayland Compositor развивается рабочий стол Grefsen;
  • В Enlightenment ведётся работа по улучшению поддержка Wayland;
  • В ОС DragonFly BSD развивается порт с Wayland и Weston, имеется поддержка XWayland;
  • Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish 2 и Tizen 3.
  • В панели Cairo-Dock предусмотрена возможность работы в окружении композитного сервера Weston.
  • Работа по добавлению поддержки Wayland ведётся для рабочих столов LXQt и MATE.
  • Развиваются новые десктоп-окружения, работающее только на базе технологий Wayland: papyros-shell, Hawaii и Orbital.
  • Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.




0_1464763723.png0_1464763699.png

Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK3+, Qt 5, 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-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и OS X. Поддержку запуска X11-приложений планируется встроить непосредственно в композитный сервер Weston, который при попытке выполнения X11-приложения будет инициировать запуск X-сервера и связанных с ним компонентов XWayland. При таком подходе процесс запуска X11-приложений будет бесшовным и неотличимым для пользователя от запуска приложений, работающих напрямую с Wayland.

© OpenNet