Более того, консорциум 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 чипов Apple M1 и M2 развивается два драйвера, работающих в сопряжении друг с другом:
DRM-драйвер (Direct Rendering Manager) drm-asahi для ядра Linux, написанный на языке Rust, и драйвер asahi для Mesa, написанный на языке Си. Работающий на уровне ядра драйвер изначально развивается с учётом будущей поддержки API Vulkan, а программный интерфейс для взаимодействия с пространством пользователя спроектирован с оглядкой на UAPI, предоставляемый новым драйвером Intel Xe. Так как в чипах Apple M1/M2 применяется собственный GPU, выполняющий закрытую прошивку и использующий достаточно сложные совместно используемые структуры данных, при разработке независимых драйверов применяется обратный инжиниринг драйверов из macOS.
Источник: http://www.opennet.ru/opennews/art.shtml?num=60610