Для Wayland представлен прототип расширения для рендеринга на удалённой системе
Кристиан Хогсберг (Kristian Høgsberg), создатель проекта Wayland, в своём докладе на конференции разработчиков X.Org продемонстрировал технологию для организации работы с приложениями, запущенными на другой машине, выступающую в качестве ответа на критику об отсутствии в Wayland средств для обеспечения сетевой прозрачности.Сам по себе Wayland не поддерживает API рендеринга отдельных окон и манипулирует только битмапами, поэтому реализация функций удалённого рендеринга может быть реализована на уровне композитного сервера. Рабочий прототип подобной системы реализован через специальное дополнение к композитному серверу Weston, которое выступает в роли надстройки для обеспечения сетевого взаимодействия при организации рендеринга и передачи событий от устройств ввода. Взаимодействие происходит не уровне двух композитных менеджеров, т.е. композитный сервер Weston на локальной системе, на которой работает пользователь, может отображать отдельные окна из композитного сервере Weston, запущенного на удалённой системе.
Трансляция вывода реализована на основе передачи изменения содержимого отдельных окон, обслуживаемых композитным сервером. По сети передаются только изменившиеся элементы окон, изменения вычисляются на уровне битмапов и передаются с использованием протокола похожего на VNC. Используемый для организации сетевого доступа протокол манипулирует исключительно пиксельными картами, т.е. изображениями с результатами рендеринга, и не поддерживает работу с примитивами, как это реализовано в X11.
В докладе также отмечается, что первый стабильный релиз Wayland 1.0 планируется выпустить в течение ближайших недель. Тем не менее, экосистема вокруг проекта Wayland пока не готова для замены X11 в основных дистрибутивах Linux. Ожидается, что выпуск релиза Wayland 1.0 и связанная с ним стабилизация API и протокола подтолкнёт разработчиков к адаптации продуктов для прямой работы с Wayland и интеграции поддержки технологий Wayland в дистрибутивы. В настоящее время предварительные версии пакетов с Wayland и Weston уже доступны в тестовых репозиториях Fedora 18 и Ubuntu 12.10.
На днях разработчики проекта KDE представили план обеспечения работы KDE и KWin поверх Wayland. Так как бэкенд с поддержкой Wayland изначально будет доступен в Qt 5, поддержка Wayland в KDE и KWin упирается в портирование компонентов KDE на использование Qt 5. После того как появится возможность сборки с использованием Qt 5 предстоит убедится в работоспособности с Wayland приложений KDE, оболочки Plasma и композитного менеджера KWin. В процессе портирования для Windows и Mac OS X приложения KDE уже почищены от платформозависимого кода, поэтому больших проблем с использованием бэкенда Wayland вместо бэкенда X11 не ожидается. Оболочка Plasma потребует некоторых корректировок, так к в ней по прежнему остается код, напрямую обращающийся к X11. В KWin планируется добавить средства для работы в качестве композитного сервера Wayland, что позволит выполнять KWin непосредственно поверх Wayland без привлечения дополнительных композитных серверов, таких как Weston. Несмотря на то, что в отдельной созданной ветке с портом KWin для Wayland уже больше года нет новых коммитов, разработка KWin этот год протекает с постоянной оглядкой на будущее использование Wayland, как при проведении рефакторинга кода в основной ветке, так и при реализации новшеств.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон.
Взаимодействие с аппаратным обеспечением, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек Gtk3+, Qt 5, SDL, Clutter и EFL (Enlightenment Foundation Library). Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland и композитного сервера Weston развивается проект XWayland, позволяющий организовать запуск полноценного X.Org-сервера в роли клиента Wayland.
В рамках проекта Weston развивается один из прототипов реализации композитного сервера. Подчёркивается, что это лишь одна из реализаций (по аналогии с оконными менеджерами), так как в роли композитного сервера может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в таких существующих композитных менеджерах для X11, как KWin и Compiz. Композитный сервер Weston может работать с использованием DRM-модуля ядра Linux, поверх X11 или поверх другого композитного сервера Wayland.
© OpenNet