X Window System - взгляд в будущее

Компьютерная графика становится частью нашей жизни. Сейчас любая универсальная ОС, не важно где она используется - в качестве домашней мультимедийной станции, в киноиндустрии, проектировании, в научной визуализации или при создании игр - не может обойтись без хорошей графической компоненты. В UNIX (исключая MacOS X с технологией Quartz Extreme, которая без всякого X Server напрямую выводит графику с помощью OpenGL) используется система X Window.

Ни ядро, ни X Window изначально не были расчитаны на аппаратное ускорение графики, и здесь есть по меньшей мере две проблемы:

- отсутствие единого механизма управления распределением памяти, и связанные с этим проблемы написания драйверов;

- искусственное разделение графики на 2d и 3d. Если раньше это было оправдано, сегодня основные ресурсы графических ускорителей отвечают за 3d, и использование их для отрисовки 2d - как это и сделано в OpenGL - позволит повысить эффективность и создать единый интерфейс.

В докладе рассматривается первая проблема, информации о которой в широком доступе очень мало. Именно драйвер видеокарты позволяет функциям OpenGL пользовательских программ получать аппаратное ускорение.

прямая визуализация в X Window

Оконная система X Window обеспечивает стандартные инструменты и протоколы для построения графических интерфейсов пользователя.

Для координирования работы ядра Linux, системы X Window, аппаратных средств ускорения 3D-графики и основанного на OpenGL механизма визуализации была разработана программная архитектура DRI. В данном подходе применяются DRM-модули - модули пространства ядра, имеющие прямой доступ к памяти и управление общими ресурсами.

Библиотека OpenGL и драйверы пользовательского пространства предоставляются Linux-системам проектом Mesa.

К недостаткам такого подхода можно отнести невозможность одновременного использования аппаратно-ускоренной инфраструктуры OpenGL для отрисовки рабочего стола и иных приложений, например игровых.

Среди технологий, обеспечивающих трехмерную отрисовку рабочего стола, можно выделить два различных подхода:

- Xgl - архитектура X-сервера, использующая прорисовку через OpenGL с помощью glitz. Нуждается в наличии X-сервера и работает поверх него. - Xegl - новый сервер, использующий единые механизмы для отрисовки 2d и 3d.

Новая архитектура 3D-графики, известная как Gallium3D, предоставляет единый интерфейс управления памятью, облегчающий написание драйверов - состоит из набора интерфейсов и вспомогательных библиотек. Кроме модульной структуры и унифицированного интерфейса к аппаратным ресурсам Gallium3D предусматривает перекладывание задач управления памятью на DRM-модули ядра, что делает интерфейс DRI (называемый в данной инфраструктуре DRI2) в большей степени ориентированным на взаимодействие с графическим процессором и устраняет известные проблемы управления памятью Mesa.



Виктор Евдоков, Калининград, Россия, arielfeinerman@gmail.com


Сетевые решения. Статья была опубликована в номере 07 за 2008 год в рубрике бизнес

©1999-2022 Сетевые решения