Компания Texas Instruments опубликовала для ядра Linux код нового открытого DRM-драйвера (Direct Rendering Manager) для управления видеоподсистемой платформы TI OMAP. Новый модуль omapdrm, как и ранее опубликованные omapfb (fbdev) и omap_vout (v4l2 display), использует DSS2-драйвер для организации доступа к видеоподсистеме, включая поддержку HDMI, DVI и различных панелей LCD. Драйвер поддерживает KMS для переключения видеорежимов на уровне ядра и включает дополнительный интерфейс для обеспечения связи с внешними модулями ядра, позволяющий создавать плагины. В настоящее время в драйвере отсутствует поддержка 3D, но в будущем она сможет быть реализована в виде плагина.

Для управления памятью в драйвере используется технология GEM (Graphics Execution Manager), которая позволяет вынести в работающий на уровне ядра DRM-модуль (Direct Rendering Manager) функции, связанные с управлением памятью видеокарты. Технология GEM, разработана компанией Intel и предназначена для низкоуровневого взаимодействия с GPU, позволяя через специальное GEM API организовать совместный одновременный доступ нескольких приложений к видеокарте.

На пользовательском уровне, для взаимодействия с DRM-модулем подготовлен X.Org-драйвер xf86-video-omap, который пока поддерживает только функции 2D. Прошлый DRM-драйвер от компании Texas Instruments (DMM-TILER) использовал собственный механизм управления видеопамятью и не был совместим с существующими открытыми видеоподсистемами, работающими на уровне пользователя. По причине отсутствия открытых драйверов уровня пользователя (с DMM-TILER могли работать лишь проприетарные компоненты), данный драйвер был отвергнут для включения в состав основного ядра Linux. Новый драйвер, поддерживающий KMS и GEM, лишен этих недостатков и может претендовать на включение в состав ядра Linux 3.2 или 3.3.

Основная критика прошлого драйвера была связана с тем, что Texas Instruments пытается продвинуть в состав основного ядра модуль, предназначенный исключительно для взаимодействия с проприетарными компонентами. Новый драйвер не содержит функциональности, нацеленной на обход ограничений по вызову проприетарного кода, через привязку к закрытым модулям ядра или компонентам, работающим на уровне пользователя.

Дэвид Эрли (David Airlie), работающий в компании Red Hat и отвечающий за DRM-подсистему ядра Linux, указал на то, что рассмотрит возможность включения нового драйвера в экспериментальное staging-дерево ядра. Но сразу предупредил, что в настоящее время в ядро может быть включена лишь часть драйвера. Присутствующая в драйвере подсистема с реализацией API для подключения плагинов не будет одобрена для включения в ядро, пока не появится полноценный открытый плагин, основанный на данном интерфейсе. В ответ разработчик omapdrm сообщил, что работа над таким открытым плагином ведется и в течение месяца он будет опубликован.

Источник: http://www.opennet.ru/opennews/art.shtml?num=31670