Na lista de discussão dos desenvolvedores do núcleo Linux, uma implementação preliminar do driver drm-asahi para GPUs Apple AGX das séries G13 e G14, utilizadas nos chips Apple M1 e M2, foi proposta. O driver é escrito em Rust e inclui um conjunto de vinculadores universais sobre a subsistema DRM (Direct Rendering Manager), que podem ser usados para desenvolver outros drivers gráficos em Rust. O conjunto de patches publicado foi oferecido apenas para discussão entre os desenvolvedores do núcleo (RFC), mas pode ser aceito no conjunto principal após a conclusão da revisão e correção dos problemas identificados.
Desde dezembro, o driver faz parte do pacote com o núcleo para a distribuição Asahi Linux e foi testado pelos usuários deste projeto. O driver pode ser utilizado em distribuições Linux para organizar o funcionamento do ambiente gráfico em dispositivos Apple com SoC M1, M1 Pro, M1 Max, M1 Ultra e M2. Ao desenvolver o driver, foi feita uma tentativa não apenas de aumentar a segurança, minimizando erros ao trabalhar com memória no código executado pelo CPU, mas também de garantir proteção parcial contra problemas que surgem ao interagir com o firmware. Em particular, o driver fornece certos vinculadores para estruturas não seguras de memória compartilhada com cadeias de ponteiros complexos, aplicadas no firmware para interagir com o driver.
O driver proposto é usado em conjunto com o driver Mesa asahi, que fornece suporte ao OpenGL no espaço do usuário e passa com sucesso nos testes de compatibilidade com OpenGL ES 2, estando quase pronto para suportar OpenGL ES 3.0. Enquanto isso, o driver em nível de núcleo está sendo desenvolvido desde o início com a futura compatibilidade com a API Vulkan em mente, e a interface de programação para interação com o espaço do usuário é projetada com base no UAPI fornecido pelo novo driver Intel Xe.
Fonte: opennet.ru
