Драйвер GPU Mali

Документ описывает Linux-драйвер Mali GPU для поддержки аппаратного ускорения OpenGL ES на 1892ВМ14Я.

Драйвер поддерживается в ядре Linux 4.4.

Общие сведения

Особенности драйвера GPU:

  • Аппаратное ускорение OpenGL ES v1, OpenGL ES v2, EGL v1.4.

  • Поддержка ускорения приложений в Х11.

  • Поддержка ускорения приложений, работающих через Linux фреймбуфер.

  • Поддержка ускорения приложений Qt, работающих через фреймбуфер.

  • Поддержка форматов пикселей фреймбуфера:

    • 32bpp ARGB 8888,

    • 16bpp ARGB 4444,

    • 16bpp ARGB 1555,

    • 16bpp RGB 565.

  • Примеры интеграции драйвера в Buildroot (работа через фреймбуфер) и ALT Linux (работа в X11).

Ограничения:

  • Не поддерживается интеграция с libglvnd для работы с несколькими провайдерами OpenGL ES в X11.

  • Не поддерживается OpenVG.

Состав драйвера

Драйвер GPU состоит из компонентов, представленных в таблице Таблица 8.

Таблица 8 Компоненты драйвера GPU

Компонент

Описание

Лицензия

libEGL.so

Ссылка на библиотеку libMali.so.

libGLESv1_CM.so

Ссылка на библиотеку libMali.so.

libGLESv2.so

Ссылка на библиотеку libMali.so.

libMali.so

Библиотеки для фреймбуфера и X11, реализуют API OpenGL ES v1, OpenGL ES v2, EGL v1.4.

Proprietary

libUMP.so

Библиотека для выделения памяти для GPU.

Apache

fbturbo_drv.so

Драйвер DDX для интеграции GPU в Xorg.

GPLv2

ump.ko

Модуль ядра для выделения памяти для GPU.

GPLv2

mali.ko

Модуль ядра GPU.

GPLv2

Компоненты драйвера с открытой лицензией распространяются в виде исходных кодов в Git-репозиториях и в составе Buildroot 3.1:

Для ускорения приложений в X11 и приложений, работающих через фреймбуфер, предоставляется две несовместимые библиотеки libMali.so. Библиотеки распространяются в бинарном виде:

  • для X11 и фреймбуфера — в составе Buildroot (X11 в Buildroot не проверяется),

  • для X11 — в виде RPM-пакетов совместимых с ALT Linux на сайте dist.elvees.com.

Поддержка X11

На рисунке Рис. 5 представлена диаграмма зависимостей OpenGL и OpenGL ES-приложений X11, компонентов драйвера (обозначены как Mali-X11). Дополнительно на диаграмме представлены:

  • libGLX.so — библиотека вывода OpenGL-изображений в X11. Распространяется в составе пакета X.org.

  • libGL.so — библиотека программного рендеринга OpenGL. Распространяется с сайта Mesa.

../../_images/x11-mali-stack.png

Рис. 5 Диаграмма зависимостей OpenGL и OpenGL ES-приложений X11

Поддержка фреймбуфера

На рисунке Рис. 6 представлена диаграмма зависимостей OpenGL ES-приложений для фреймбуфера, компонентов драйвера (обозначены как Mali-FB).

../../_images/fb-mali-stack.png

Рис. 6 Диаграмма зависимостей OpenGL ES-приложений для фреймбуфера

Поддержка Qt

В MCom-02 Buildroot Qt интегрирован с поддержкой OpenGL ES согласно диаграмме Рис. 6. Qt настроен на использование EGLFS плагина для запуска OpenGL ES приложений. Для указания конкретного плагина производителя GPU необходимо задать переменную окружения QT_QPA_EGLFS_INTEGRATION:

export QT_QPA_EGLFS_INTEGRATION=eglfs_mali

Для включение отладки системы плагинов нужно задать переменные окружения:

export QT_DEBUG_PLUGINS=1
export QT_QPA_EGLFS_DEBUG=1
export QT_LOGGING_RULES=qt.qpa.input=true

Подробнее см. Qt for Embedded Linux.