Подробности о графическом стеке Freon, пришедшем на смену X11 в Chrome OS

В обсуждении выпуска Chrome OS 41 разработчики из компании Google поделились некоторыми подробностями реализации графического стека Freon, который пришёл на смену X-серверу в устройствах Chromebook Pixel, Acer C720, ASUS Chromebox, HP Chromebox, LG Chromebase, Acer Chromebox и Dell Chromebox. Переход на Freon позволил сократить энергопотребление, повысить производительность вывода видео и WebGL, уменьшить размер системы. Вместе X-сервера Freon предоставляет компактную прослойку, позволяющую организовать прямое обращение из браузера к драйверам KMS и OpenGL ES. Подобное стало возможным благодаря применению классов Ozone, используемых в Chromium для абстрагирования вывода на различные оконные системы (например, развиваются прослойки для вывода через Wayland и Mir). Все операции вывода в Chrome OS ограничиваются браузером, который использует только одно окно X11, формируя содержимое экрана при помощи RendererViews и встроенного оконного менеджера Aura.

Aura берёт на себя функции оконного менеджера (Aura shell), работающего через собственный композитный сервер, использующий доступные средства GPU для ускорения графических операций, и графического тулкита (Aura UI) для формирования элементов интерфейса, предоставляя собственный набор виджетов, диалоговых окон, элементов управления и обработчиков событий. Из подсистем нижележащего графического стека (X11, Cocooa или Windows) затрагивается только вывод поверх корневого окна. Код вывода в Aura сведён к легко заменяемой абстрактной прослойке Ozone.

0_1394607218.png Так как в Chrome OS допускается выполнение только web-приложений, которые выводят информацию через браузер, функции мультиплексирования окон X11 оказались излишними и появилась возможность организовать вывод напрямую, исключив звено с X-сервером. Таким образом, с введением Freon связка chrome+x11+drm/kms трансофрмировалась chrome+drm/kms. Для работы текстовой консоли (Ctrl+Alt+F2), применяемой в режиме для разработчиков, в рамках проекта frecon подготовлена реализация консоли, работающая через KMS.

Из перспектив, которые открылись перед разработчиками после внедрения Freon и позволяют добиться увеличения производительности и времени автономной работы, отмечено задействование для композитинга аппаратных оверлеев (Hardware overlay), поддержка выполнения частичных обновлений на платформах без их поддержки в драйверах OpenGL, возможность загрузки текстур без их промежуточного копирования (zero copy), поддержка работы с внешними экранами (уже имеется прототип c реализацией DisplayLink 2.0), сокращение задержек при вводе данных.

Полный текст статьи читайте на OpenNet