13.04.2024

В открытом драйвере Asahi сертифицирвоана поддержка OpenGL 4.6 для чипов Apple M1 и M2

В Asahi, открытом драйвере для GPU Apple AGX, обеспечена поддержка OpenGL 4.6 и OpenGL ES 3.2 для чипов Apple M1 и M2. Примечательно, что в родных графических драйверах для чипов M1 от Apple реализована только спецификация OpenGL 4.1, а поддержка OpenGL 4.6 первой появилась в открытом драйвере. Готовые пакеты с драйверами уже включены в состав репозиториев Fedora доступны для использования в специализированной сборке Fedora Asahi Remix 39, предназначенной для установки на системы с ARM-чипами Apple.

Более того, консорциум Khronos, занимающийся разработкой графических стандартов, признал полную совместимость открытого драйвера Asahi для GPU AGX, поставляемого в чипах Apple M1 и M2, со спецификациями OpenGL 4.6 и OpenGL ES 3.2. Драйвер успешно прошёл все тесты из набора CTS (Kronos Conformance Test Suite) и включён в список сертифицированных драйверов. Проверка была выполнена на устройствах Apple M1, M1 Pro/Max/Ultra, M2 и M2 Pro/Max в окружении с дистрибутивом Asahi Linux Fedora Remix, Mesa 24.0.0 и X.Org X Server (X11_GLX). Оригинальные проприетарные драйверы Apple для чипов M1 и M2 пока не включены в список сертифицированных в Khronos драйверов. Получение сертификата даёт возможность официально заявлять о совместимости с графическими стандартами и использовать связанные с ними торговые марки Khronos.

В GPU чипов M1 отсутствуют некоторые аппаратные возможности, необходимые для реализации OpenGL ES 3.2 и OpenGL 4.2, поэтому подобная отсутствующая функциональность была реализована, используя имеющиеся функции. Например, геометрические шейдеры, тесселяция и потоковый вывод из вершинного шейдера (transform feedback) реализованы при помощи вычислительных шейдеров, отсечение объектов (cull distance) — через интерполяцию, а управление отсечением (clip control) через эпилог вершинного шейдера. В дальнейшем разработка открытых драйверов для GPU Apple AGX будет сосредоточена на обеспечении поддержки графического API Vulkan, в реализации которого планируют задействовать часть уже протестированного типового кода, используемого в драйверах для OpenGL.

Для поддержки GPU AGX чипов Apple M1 и M2 развивается два драйвера, работающих в сопряжении друг с другом: DRM-драйвер (Direct Rendering Manager) drm-asahi для ядра Linux, написанный на языке Rust, и драйвер asahi для Mesa, написанный на языке Си. Работающий на уровне ядра драйвер изначально развивается с учётом будущей поддержки API Vulkan, а программный интерфейс для взаимодействия с пространством пользователя спроектирован с оглядкой на UAPI, предоставляемый новым драйвером Intel Xe. Так как в чипах Apple M1/M2 применяется собственный GPU, выполняющий закрытую прошивку и использующий достаточно сложные совместно используемые структуры данных, при разработке независимых драйверов применяется обратный инжиниринг драйверов из macOS.

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