Увидел свет Wayland 1.8
3 июня 2015 года
Представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.8, а также развиваемого параллельно композитного сервера Weston 1.8. Ветка 1.8 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений, расширяющих возможности композитного сервера Weston. Следующий выпуск 1.9 запланирован на конец сентября.
Работа над протоколом Wayland главным образом уже завершена и выпуск Wayland 1.8 в основном сосредоточен на реструктуризации кодовой базы и исправлении ошибок. В новой версии произведено разделение заголовочных файлов для клиента и сервера на базовые компоненты и генерируемые протоколы. К базовым заголовочным файлам отнесены wayland-client-core.h и wayland-server-core.h. В scanner добавлена опция "--include-core-only", при указании которой генерируемый код, используется только базовые заголовки, что удобно при разработке биндингов и для пользователей libwayland, генерирующих собственный код протоколов на основе новых файлов wayland.xml.
В композитном сервере Weston представлена достаточно большая порция улучшений. Основной задачей разработки Weston является не подготовка окружения, пригодного для конечного пользователя, а содействие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях, а также предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland во встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.
Основные новшества Weston 1.8:
- В состав приняты подготовленные компанией Collabora изменения, касающиеся модернизации EGL и создания тестового фреймворка. В частности, улучшена реализация EGL в gl-renderer и добавлен тестовый режим рендеринга без экрана ("headless rendering"), который позволяет синтетически запустить Weston в идеальных условиях, исключив влияние системы вывода. В headless-режиме отрисовка осуществляется в буфер с использованием системы рендеринга pixman, что позволяет получить виртуальное изображение экрана в памяти, которое можно передать клиенту через протокол создания скриншотов. После этого можно сравнить полученное эталонное изображение с фактически выдаваемым на экран.
- Началось тестирование оболочки для информационно-развлекательных систем (IVI), добавлена экранная раскладка для IVI.
- Поддержка перерисовки по расписанию.
- Возможность использования именованных каналов вывода.
- API для захвата содержимого поверхностей (surface-shooting API).
- В системе отрисовки pixman добавлена поддержка вырезания по источнику и выбора шаблона вырезания.
- В компоненты редактирования текста добавлена поддержка операций помещения и извлечения данных из буфера обмена.
- Добавлена возможность указания альтернативного файла конфигурации (weston --config=my-weston.ini). Заданный файл конфигурации будет охватывать все приложения, запущенные в данном экземпляре Weston.
Возможность работы поверх Wayland развивается практически во всех современных окружениях рабочего стола:
- Разработчики KDE развивают kwin_wayland, вариант оконного менеджера KWin для Wayland, а также библиотеку KWayland, в которую вынесен весь код, специфичный для поддержки Wayland. В настоящее время работа KDE Plasma с kwin_wayland уже
достаточно стабильна для использования данной связку для решения повседневных задач разработчика. Напрямую протокол Wayland пока используется только в Xwayland и KWin, а приложения продолжают использовать X11, но через прослойку Xwayland, запущенную поверх kwin_wayland. Kwin_wayland не обращается к серверам X11 или Wayland/Weston для отрисовки, а является самодостаточным сервером Wayland и выполняет все операции с графикой своими силами через прямое обращение к бэкенду DRM (Direct Rendering Manager). Через DRM также осуществляется управление видеорежимами и видеопамятью. При этом для взаимодействия с оборудованием kwin_wayland обходится без привилегий root - для открытия файла-устройства DRM с привилегиями обычного пользователя применяется logind. Для компоновки целостного изображения (композитинг) поддерживается использование OpenGL и QPainter.
- В GNOME поддержка Wayland доведена до состояния, пригодного для ежедневного использования, и отмечена как приближающаяся к финальной стадии. В последнем выпуске GNOME реализованы совместимые с Wayland средства для настройки ввода, добавлена поддержка определения границ указателей, с развитием libinput значительно улучшена обработка ввода. Экран входа в систему переведён на работу поверх Wayland (для систем без поддержки Wayland оставлен запасной fallback-режим, использующий X11). В Fedora 22 на Wayland переведена работа экрана входа в систему, а в Fedora 23 ожидается переход по умолчанию на окружение GNOME, работающее поверх Wayland. В Ubuntu 15.04 реализован экспериментальный сеанс рабочего стола GNOME на базе Wayland (следует установить пакет gnome-session-wayland и выбрать на экране входа "GNOME on wayland").
- В панели Cairo-Dock реализована возможность работы в окружении композитного сервера Weston.
- Wayland опционально поддерживается в Enlightenment E19.
- Wayland используется в мобильных платформах Sailfish и Tizen 3.
- Работа по добавлению поддержки Wayland ведётся для рабочих столов LXQt и MATE.
- Развиваются новые десктоп-окружения, работающее только на базе технологий Wayland: Quantum Shell, Hawaii и Orbital.
- Для тестирования работы 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) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Отмечается значительный прогресс в направлении поддержки Wayland в проприетарных драйверах NVIDIA - в ветку 346.x уже включена поддержка всех необходимых расширений EGL, но остаётся реализовать KMS API и KMS ioctl. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11 или поверх другого композитного сервера Wayland. Кроме того, развиваются проекты по обеспечению работы поверх графического стека платформы Android.
В рамках проекта Weston развивается одна из реализаций композитного сервера. В роли композитного сервера также может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в KWin. В текущем виде Weston уже вышел за рамки набора примеров для тестирования протокола Wayland и может обрастать функциональностью через плагины и дополнения. Пользовательские оболочки и расширенные функций управления окнами предлагается реализовывать в форме внешних бэкендов к Wayland.
Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.