Компания Collabora представила графический драйвер kms_swrast

Компания Collabora представила новый драйвер для программной отрисовки OpenGL, построенный с использованием предлагаемого в Mesa фреймворка Gallium и использующий механизмы, предоставляемые подсистемой KMS на уровне ядра Linux. Код kms_swrast предложен для включения в состав Mesa в качестве драйвера программного ренедеринга, который может применяться на платформе Android с отрисовкой через интерфейс /dev/dri/renderD*. Кроме того, подготовлены изменения для DRM-подсистемы ядра, необходимые для работы kms_swrast.

Драйвер kms_swrast нацелен на использование как можно большего числа готовых блоков, предоставляемых KMS и Gallium. По сути kms_swrast является обычным DRM-драйвером, использующим возможности драйверов на уровне ядра для управления видеопамятью, но не вовлекающим GPU для рендеринга. В качестве бэкендов с реализацией 3D-примитивов OpenGL и OpenGL ES задействованы существующие Gallium-драйверы, такие как softpipe и llvmpipe.

Использованием DRM-драйверов ядра для программного рендеринга (предлагается использовать /dev/dri/renderD*) позволяет не привязываться к конкретному оборудованию, так как из функций DRM вызываются в основном только функции выделения областей видеопамяти, которые могут применяться для отрисовки пикселей и их отправки на экран. Таким образом в kms_swrast удалось максимально упростить кодовую базу и использовать только готовые блоки, с одной стороны не привязываясь к оборудованию, а с другой стороны используя универсальные функции аппаратных драйверов.

08/02/2018 10:40:16
0

комментарии (0)