Asahi, um driver aberto para GPUs Apple AGX, oferece suporte para OpenGL 4.6 e OpenGL ES 3.2 para chips Apple M1 e M2. Vale ressaltar que os drivers gráficos nativos dos chips M1 da Apple implementam apenas a especificação OpenGL 4.1, e o suporte ao OpenGL 4.6 foi o primeiro a aparecer em um driver aberto. Pacotes de drivers prontos já estão incluídos nos repositórios do Fedora e estão disponíveis para uso em uma versão especializada do Fedora Asahi Remix 39, projetada para instalação em sistemas com chips Apple ARM.
Além disso, o consórcio Khronos, que desenvolve padrões gráficos, reconheceu a total compatibilidade do driver aberto Asahi para a GPU AGX, fornecida nos chips Apple M1 e M2, com as especificações OpenGL 4.6 e OpenGL ES 3.2. O driver passou com sucesso em todos os testes do CTS (Kronos Conformance Test Suite) e está incluído na lista de drivers certificados. O teste foi realizado em dispositivos Apple M1, M1 Pro/Max/Ultra, M2 e M2 Pro/Max em ambiente com a distribuição Asahi Linux Fedora Remix, Mesa 24.0.0 e X.Org X Server (X11_GLX). Os drivers proprietários originais da Apple para os chips M1 e M2 ainda não estão incluídos na lista de drivers certificados Khronos. A obtenção do certificado permite declarar oficialmente a compatibilidade com os padrões gráficos e usar as marcas registradas Khronos associadas.
A GPU M1 carece de alguns recursos de hardware necessários para implementar OpenGL ES 3.2 e OpenGL 4.2, portanto, essa funcionalidade ausente foi implementada com base nas funções existentes. Por exemplo, sombreadores de geometria, tesselação e feedback de transformação são implementados usando sombreadores de computação, a distância de seleção é implementada por meio de interpolação e o controle de clipe é implementado por meio do epílogo do sombreador de vértice. No futuro, o desenvolvimento de drivers abertos para a GPU Apple AGX terá como foco fornecer suporte para a API gráfica Vulkan, cuja implementação está planejada para usar parte do código padrão já testado usado em drivers para OpenGL.
Lembremos que para os chips GPU Apple M1 e M2 estão sendo desenvolvidos dois drivers que funcionam em conjunto: o driver DRM (Direct Rendering Manager) drm-asahi para o kernel Linux, escrito na linguagem Rust, e o driver asahi para Mesa, escrito na linguagem Si. O driver em nível de kernel foi projetado desde o início para oferecer suporte futuro à API Vulkan, e a interface de espaço do usuário foi projetada com a UAPI fornecida pelo novo driver Intel Xe em mente. Como os chips M1/M2 da Apple usam uma GPU proprietária executando firmware proprietário e estruturas de dados compartilhadas bastante complexas, o desenvolvimento de drivers independentes envolve engenharia reversa dos drivers do macOS.
Fonte: opennet.ru
