Выпуск Wayland 1.15 и композитного сервера Weston 4.0
10 апреля 2018 года
После восьми месяцев разработки сформирован стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.15, а также развиваемого параллельно композитного сервера Weston 4.0. Ветка Wayland 1.15 обратно совместима на уровне API и ABI с выпусками 1.x и кроме исправления ошибок примечательна следующими изменениями:
- Добавлен новый API wl_display_destroy_clients() для проведения чистки клиентов до уничтожения связанного с ними вывода;
- Документировано применение двойной буферизации в wl_subcompositor.get_subsurface;
- В wayland-scanner добавлена возможность генерации как публичных, так и приватных идентификаторов. Добавлен вывод предупреждения при попытке использования старой опции "code". Представлена новая опция "--strict", обеспечивающая мгновенное прекращение работы в случае проблем при верификации DTD;
- Функциональность библиотеки libwayland-egl включена в состав libwayland и скоро будет удалена из Mesa;
- В переменной окружения WAYLAND_DISPLAY теперь допускаются только абсолютные пути.
В Weston развиваются технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.
Смена номера версии Weston на 4.0 обусловлена изменениями ABI, нарушающими совместимость, например, удалена поддержка протокола xdg-shell-v5 (оставлен только xdg-shell-v6). В новой версии Weston добавлена поддержка протокола input-timestamps, позволяющего клиентам с высокой точностью получать информацию о времени наступлений событий ввода. Добавлена базовая поддержка атомарного изменения видеорежимов. Также представлена реализация протокола zwp_linux_dmabuf_v1, в gl-renderer добавлена поддержка EGL-расширения fence_sync (синхронизация формирования вывода), обеспечено кэширование свойств DRM (Direct Rendering Manager).
Статус поддержки Wayland в окружениях рабочего стола и дистрибутивах:
- В GNOME сеанс на базе Wayland рекомендован в качестве основного. В
композитном менеджере Mutter при использовании Wayland обеспечена поддержка систем с несколькими GPU и гибридных графических подсистем (GPU Intel + GPU NVIDIA или AMD). В GNOME для Wayland реализована поддержка удалённого рабочего стола;
- В выпущенной компанией LG открытой платформе webOS Open Source Edition предложен новый композитный менеджер, основанный на протоколе Wayland;
- В KDE продолжает наблюдаться прогресс в стабилизации и расширении поддержки Wayland. KDE Plasma 5.12 стал первым LTS-выпуском с поддержкой Wayland. В Kubuntu 18.04
реализован экспериментальный сеанс на базе Wayland;
- В openSUSE Leap 15 будет предложен сеанс KDE на базе Wayland;
- Использование по умолчанию сеанса на базе Wayland в Ubuntu 17.10. В LTS-выпуске Ubuntu 18.04 по умолчанию будет возвращён традиционный графический стек на основе X.Org Server, а сеанс на основе Wayland предложен в качестве опции. В выпуске Ubuntu 18.10, а также в следующем LTS релизе Ubuntu 20.04, планируется вернуться на использование Wayland по умолчанию;
- Продолжатся работа по улучшению поддержки Wayland в Enlightenment. В версии 0.22 добавлена поддержка протокола xdg-shell v6, ограничений движения указателя и протокола для относительного позиционирования указателя, а также улучшена поддержка XWayland и повышена стабильность работы под управлением Wayland;
- В медиаплеере VLC 3.0.0 представлена начальная поддержка Wayland;
- В дисплейном сервере Mir обеспечена поддержка работы клиентов Wayland, что позволяет организовать запуск Wayland-приложений в окружении Mir, используя Mir в качестве композитного сервера для Wayland;
- Система вывода в механизме для запуска виртуальных машин с Linux в ChromeOS предоставляет встроенную поддержку Wayland-клиентов (virtio-wayland) с выполнением композитного сервера на стороне основного хоста и возможностью эффективного использования GPU из гостевых систем;
- Развиваемая проектом Qt платформа для автомобильных систем Qt Automotive Suite включает Qt Wayland Compositor, многопоточную систему отрисовки для встраиваемых устройств, использующую протокол Wayland;
- Fedora 27 стал третим выпуском, в котором по умолчанию предложен сеанс GNOME на базе Wayland;
- Для FreeBSD подготовлены порты, необходимые для сборки KDE с поддержкой Wayland;
- Использующие Wayland пользовательские окружения papyros-shell и Hawaii объединились в новый проект Liri. Liri базируется на Qt 5 (QML) и продвигает оформление в стиле Material Design. Рабочий стол развивается командой дистрибутива LiriOS, примечательного использованием вместо традиционных пакетов готовых системных срезов на основе технологии OSTree, при которой системный образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива;
- В ОС DragonFly BSD развивается порт с Wayland и Weston, имеется поддержка XWayland;
- Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish 2 и Tizen.
- В панели Cairo-Dock предусмотрена возможность работы в окружении композитного сервера Weston.
- В рамках проекта AsteroidOS развивается новая открытая ОС для умных часов, использующая Qt5 и Wayland;
- Работа по добавлению поддержки Wayland ведётся для рабочих столов LXQt и MATE.
- Развивается десктоп-окружение Orbital, работающее только на базе технологий Wayland;
- Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.
Напомним, что 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-компонент
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.