После пяти месяцев разработки представлен (https://lists.freedesktop.org/archives/wayland-devel/2016-Fe...) стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.10, а также развиваемого параллельно композитного сервера Weston 1.10 (https://lists.freedesktop.org/archives/wayland-devel/2016-Fe...) и набора расширений wayland-protocols 1.1 (https://lists.freedesktop.org/archives/wayland-devel/2016-Fe...). Ветка 1.10 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений, расширяющих возможности композитного сервера Weston. Следующий выпуск 1.11 запланирован на 31 мая. Недавно отделившийся (https://www.opennet.dev/opennews/art.shtml?num=43338) пакет wayland-protocols включает набор протоколов и расширений, дополняющих возможности базового протокола Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений. В рамках композитного сервера Weston развиваются технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств.
Основные новшества Weston 1.10:
- В состав включен клиент с поддержкой интерфейса V4L2 (Video for Linux 2), демонстрирующий способ получения видео с устройств V4L2, таких как dmabuf;
- В оболочке для информационно-развлекательных систем (IVI Shell) улучшена поддержка конфигураций с несколькими экранами. Добавлена поддержка нескольких режимов компоновки информации на экране: размещение бок о бок, полноэкранный, кусочный (tiled) и в случайном порядке;
- В weston.ini добавлена порция новых параметров изменения конфигурации, в том числе "vt-switching" и "allow-zap" для включения/выключения обработки Ctrl-Alt-fn (переход к виртуальным терминалам) и Ctrl-Alt-Backspace (экстренное завершение работы сервера);
- Возможность использования механизма уведомлений Systemd, который, например, может применяться для отслеживания работоспособности Weston и автоматизации перезапуска в случае краха/зависания. Режим активируется через опцию "--enable-systemd-notify";
- В число зависимостей добавлен пакет wayland-protocols, компоненты которого раньше входили в состав Weston, но недавно были выделены в отдельный пакет;
Улучшения (http://blogs.s-osg.org/whats-new-wayland-1-10/), связанные с протоколом и API Wayland:
- В Wayland API добавлена поддержка операций Drag&drop, отсутствие которых было серьёзным препятствием по обеспечению полноценной работы GNOME поверх Wayland. Добавленные вызовы обеспечивают согласование типа контента при его перемещении между источником и получателем, а также информируют источник о завершении или отмене операции. Реализованный подход отличается от используемого в X11 протокола XDND предоставлением дополнительных средств управления передачей на стороне получателя;
- Поддержка группировки событий указателей (Pointer) вместе с событиями кадров (Frame), что позволяет создавать такие возможности как диагональная прокрутка, в которой комбинируются события вертикального и горизонтального скроллинга. Кроме того, сгруппированные события также позволяют более точно отслеживать клики колесом мыши, прекращение прокрутки касанием и процесса генерации событий прокрутки;
- Добавлен вызов wl_surface.damage_buffer, предоставляющий более удобный способ организации перерисовки частей поверхности;
- Для буферов разделяемой памяти реализована техника подсчёта ссылок (https://ru.wikipedia.org/wiki/%D0%9F%D0%...), дающая композитным менеджерам возможность отложить высвобождение пулов памяти до момента, когда они больше не будут использоваться. Данная возможность уже применяется в Enlightenment для асинхронной отрисовки;
- Предоставлена возможность удаления объектов wl_seat, что полезно для реализации таких применений как подключение к удалённому рабочему столу;
- К отдельным объектам протокола теперь могут быть привязаны собственные номера версий. Для обеспечения обратной совместимости всем ранее добавленным объектам присвоена версия 0;
- Добавлен новый API установки и получения файловых дескрипторов сокетов, которые используются в серверах Wayland для взаимодействия с клиентами. Данная функциональность может быть использована для усиления защиты с применением таких систем, как SELinux и SMACK;
- Добавлены атрибуты enum и bitfield;
- Добавлена порция пояснений по использованию протоколов и API, упрощающих правильное использование Wayland в окружениях рабочего стола;
В пакет wayland-protocols 1.1 добавлено два новых протокола: относительные события указателей и ограничения узазателей (блокировка). Ранее добавленные протоколы: управление работой в полноэкранном режиме, обработка методов ввода, совместное использование нескольких видеокарт при помощи технологии DMABuff, организация ввода текста, управление с сенсорных экранов, XDG-расширения для рабочего стола и организация отображения видео.
Отдельно можно отметить публикацию (http://blogs.s-osg.org/wow-wayland-over-wire/) компанией Samsung патчей (https://lists.freedesktop.org/archives/wayland-devel/2016-Fe...) с реализацией сетевой прозрачности для протокола Wayland, позволяющих организовать выполнение клиентских приложений и отрисовку на разных компьютерах. Суть предложенных изменений сводится к пробросу существующего протокола поверх сокета TCP/IP. Сжатие и техники оптимизации потока пока не реализованы, разработка находится в стадии прототипа. При этом, для добавления поддержки сетевой прозрачности в композитный сервер достаточно добавить одну строчку "wl_display_add_remote_socket(display, "foo")". Сетевая прозрачность пока работает только с клиентами, поддерживающими тип буферов wl_shm (EGL и dmabuf пока не поддерживаются).
Статус поддержки Wayland в окружениях рабочего стола и дистрибутивах:
- В GNOME поддержка Wayland близка (https://www.opennet.dev/opennews/art.shtml?num=43726) к полной готовности, остаётся решить лишь несколько незначительных проблем. Репозиторий Fedora Rawhide, на базе которого формируется релиз Fedora 24, переведён (https://www.opennet.dev/opennews/art.shtml?num=43303) на использование по умолчанию рабочего стола GNOME поверх Wayland. Экспериментальный сеанс рабочего стола GNOME на базе Wayland доступен (https://www.opennet.dev/opennews/art.shtml?num=42861) в Ubuntu GNOME (следует установить пакет gnome-session-wayland и выбрать на экране входа "GNOME on wayland").
- Разработчики KDE развивают (https://www.opennet.dev/opennews/art.shtml?num=43127) kwin_wayland, вариант оконного менеджера KWin для Wayland, а также библиотеку KWayland, в которую вынесен весь код, специфичный для поддержки Wayland. Для использования с Wayland адаптированы некоторые специфичные расширения Plasma, ранее привязанные к API X11. В состав KDE Plasma 5.5 (https://www.opennet.dev/opennews/art.shtml?num=43476) включена реализация сеанса на базе Wayland. Сеанс на базе Wayland обеспечивает более высокое качество отрисовки (исключено появление разрывов /tearing/ при выводе видео) и повышенный уровень безопасности (затруднено создание кейлоггеров). Началось (https://www.opennet.dev/opennews/art.shtml?num=43546) формирование Live-сборок KDE Plasma 5 на базе Wayland. Wayland применяется по умолчанию в платформе Plasma Mobile (https://www.opennet.dev/opennews/art.shtml?num=42668).
- В пользовательском окруженим Enlightenment 0.20 обеспечена (https://www.opennet.dev/opennews/art.shtml?num=43420) полноценная поддержка Wayland. Работа поверх Wa...
URL: https://lists.freedesktop.org/archives/wayland-devel/2016-Fe...
Новость: http://www.opennet.dev/opennews/art.shtml?num=43892