Вышел X.Org Server 1.16

После семи месяцев разработки анонсирован релиз X.Org Server 1.16. Ключевым нововведением является включение в состав DDX-компонента XWayland, который позволяет обеспечить работу прослойки для выполнения немодифицированых приложений X11 в окружении на базе Wayland и композитного сервера Weston. По организации работы XWayland выполнен в форме отдельного X-сервера (DDX, Device-Dependent X), чем напоминает Xwin и Xquartz для платформ Win32 и OS X. Для ускорения вывода используется основанная на OpenGL архитектура 2D-акселерации Glamor, что позволяет использовать XWayland независимо от установленных видеодрайверов. Для обеспечения прямого доступа к видеоадаптеру в XWayland реализована поддержка интерфейса DRI3.

Изначально, первый вариант XWayland, от которого впоследствии отказались разработчики, основывался на задействовании средств 2D-ускорения из отдельных драйверов для конкретного оборудования, например, развивался специальный драйвер xf86-video-wayland и поддерживалась отдельная ветка драйвера xf86-video-intel с поддержкой Wayland, теперь эти наработки объявлены устаревшими.

Из других новшеств X.Org Server 1.16 можно отметить:

Интегрирована поддержка архитектуры 2D-ускорения GLAMOR, которая была предложена компанией Intel. Особенностью GLAMOR является использование OpenGL для ускорения 2D-операций. GLAMOR перекладывает выполнение всех операций рендеринга на плечи внешней библиотеки, которая использует OpenGL и шейдеры для вывода 2D-графики, а также, когда это возможно, пытается задействовать текстуры для представления пиксельных карт и вызывает OpenGL-функции для прямой отрисовки на текстуру. В отличие от SNA и UXA, архитектура GLAMOR может быть адаптирована для работы с любым DDX-драйвером, для которого реализована поддержка OpenGL; Добавлены переданные компанией NVIDIA наработки для обеспечения поддержки GPU на шине, отличной от PCI. В частности, изменения необходимы для работы новых чипов Tegra, доступ к GPU в которых организован через отдельный уровень абстракции, не привязанный к шине PCI. Для определения подобных устройств вывода представлена новая секция в файле конфигурации xorg.conf (xorg.conf.d) — OutputClass, которая позволяет привязать атрибуты к устройству вывода для определения какой DDX-модуль следует использовать для не-PCI устройства. Например, для привязки DDX-модуля «opentegra» к драйверу ядра «tegra» в настройках следует указать: Section «OutputClass» Identifer «NVIDIA Tegra open-source driver» MatchDriver «tegra» Driver «opentegra» EndSection Обеспечена возможность запуска X-сервера без root-привилегий при наличии DRM/KMS-драйверов, работающих на уровне ядра. Запуск X-сервера без root-привилегий пока поддерживается при использовании DDX-драйверов Intel, Nouveau, Radeon, xf86-video-modesetting и xf86-video-freedreno в сочетании с системой systemd-logind, которая используется для управления файловыми дескрипторами устройств ввода и DRM-узлами. Для обеспечения работы устаревших UMS-драйверов, которым требуются root-полномочия для инициализации и управления видеоподсистемой, реализована специальная suid-прослойка; По умолчанию отключена поддержка режима DMX (Distributed Multihead X), позволяющего при использовании Xinerama объединить несколько X-серверов в один виртуальный экран. Поддержка прекращена в связи с невостребованностью технологии и наличием проблем при использовании OpenGL; Решены проблемы с использованием экранов серхвысокого разрешения (4K) через порт HDMI. Включены наработки по интеграции с системным менеджером systemd, позволяющая увеличить надёжность и производительность запуска сеансов и управления ими при помощи служб systemd; Проведена чистка кода, направленная на устранение причин вывода предупреждений компиляторами, в том числе указывающих на использование небезопасных техник программирования. В итоге удалось избавиться от вывода тысяч предупреждений во время сборки. Реализация поддержки Glamor для X-сервера Xephyr, позволяющего запустить X-сервер в окне уже запущенного X-сервера. Вложенный запуск X-серверов теперь рассматривается как основной инструмент для упрощения разработки и тестирования новых подсистем 2D-ускорения, позволяющий проводить эксперименты поверх текущего рабочего окружения.

© OpenNet