Драйвер Linux для GPU 1892ВМ14Я. Руководство программиста

О документе

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

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

Особенности драйвера 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 состоит из компонентов, представленных в таблице 3.

3 Компоненты драйвера 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

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

  • libGLX.so — библиотека вывода OpenGL-изображений в X11. Распространяется в составе пакета X.org.
  • libGL.so — библиотека программного рендеринга OpenGL. Распространяется с сайта Mesa.
../_images/x11-mali-stack.png

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

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

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

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

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

Поддержка Qt

В MCom-02 Buildroot Qt интегрирован с поддержкой OpenGL ES согласно диаграмме 12. 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.