Выпуск Wayland 1.14 и композитного сервера Weston 3.0
9 августа 2017 года
Представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.14, а также развиваемого параллельно композитного сервера Weston 3.0. Ветка Wayland 1.14 обратно совместима на уровне API и ABI с выпусками 1.x и содержит только исправления нескольких ошибок и удаление неиспользуемых полей из структуры wl_client.
В Weston развиваются технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.
Смена номера версии Weston на 3.0 обусловлена изменениями ABI, нарушающими совместимость. В частности, в libweston изменён размер структур weston_output и weston_compositor. В остальном отмечаются мелкие новшества, такие как улучшение интеграции композитного сервера с DRM-модулем вывода через фреймбуфер (drm_fb), включение libdrm в число обязательных зависимостей, реализация глобального обработчика вывода на несколько мониторов (вместо привязки к каждому устройству вывода), незначительное сокращение времени запуска.
В библиотеке libweston проведён небольшой рефакторинг интерфейса управления выводом, включены неэкспортируемые вызовы weston_compositor_add_output и weston_output_update_matrix. В оболочке для автомобильных информационно-развлекательных систем ivi-shell проведена чистка кода, добавлен API add_screen_remove_layer, удалены API layer_set_orientation и surface_set_orientation.
Статус поддержки Wayland в окружениях рабочего стола и дистрибутивах:
- В Ubuntu 17.10 решено использовать рабочий стол GNOME с применением по умолчанию Wayland вместо традиционного X-сервера.
- Fedora 26 стал вторым выпуском, в котором по умолчанию предложен сеанс GNOME на базе Wayland. По сравнению с Fedora 25 обеспечено применение дробного масштабирования (например, теперь можно увеличить элемент не в 2 раза, а в 1.5) для подбора оптимального размера элементов на экранах с высокой плотностью пикселей (HiDPI);
- В GNOME 3.24 представлена очередная порция улучшений, связанных с поддержкой Wayland. В оконный менеджер Mutter добавлена поддержка расширений EGLStreams и EGLDevice, позволяющих использовать проприетарные драйверы NVIDIA (начиная с выпуска 370) для запуска GNOME поверх Wayland. Добавлена возможность использования графических планшетов Wacom в окружениях на базе Wayland;
- Продолжается работа по достижению паритета в функциональности при запуске KDE поверх X11 и Wayland. В KDE Plasma 5.10 при использовании Wayland реализована полноценная поддержка раскладок клавиатур, в том числе добавлен переключатель раскладки в системном лотке, горячие клавиши для смены раскладки, возможность смены раскладки в локальном контексте (для приложения, окна, виртуального рабочего стола), поддержка IPС-интерфейса для смены раскладки из приложений. В KWin добавлена поддержка корректного масштабирования для экранов с разной плотностью размещения пикселей, например, при подключении HiDPI-экрана и обычного монитора.
- В основные нестабильные сборки KDE Neon Developer Edition, в рамках которых формируются Live-окружение с актуальными версиями программ и компонентов KDE, добавлена поддержка Wayland. Сеанс на базе Wayland уже вполне пригоден для работы, но по умолчанию не предлагается из-за невозможности использования с некоторыми графическими картами и проблематичности организации отката в случае несовместимости оборудования с Wayland;
- Для FreeBSD подготовлены порты, необходимые для сборки KDE с поддержкой Wayland;
- В Qt 5.9 внесена большая порция улучшений в Qt Wayland Compositor, многопоточную систему отрисовки для встраиваемых устройств, использующую протокол Wayland. Модуль может использоваться для создания собственных композитных серверов Wayland, применяя QML или C++ API. Имеется поддержка стандарта XDG-Shell и возможность работы в системах с несколькими экранами. В качестве примера применения Qt Wayland Compositor развивается рабочий стол Grefsen;
- Использующие Wayland пользовательские окружения papyros-shell и Hawaii объединились в новый проект Liri. Liri базируется на Qt 5 (QML) и продвигает оформление в стиле Material Design. Рабочий стол развивается командой дистрибутива LiriOS, примечательного использованием вместо традиционных пакетов готовых системных срезов на основе технологии OSTree, при которой системный образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива;
- В Enlightenment ведётся работа по улучшению поддержки Wayland;
- В ОС DragonFly BSD развивается порт с Wayland и Weston, имеется поддержка XWayland;
- Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish 2 и Tizen 3.
- В панели 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-компонент
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.