HeadlinesBriefing favicon HeadlinesBriefing.com

Driver de GPU para M4 Mac em um mês

Hacker News •
×

Niklas e eu construímos um driver de GPU totalmente compatível com OpenGL ES 3.0 para o M4 Mac Mini e MacBook Neo em cerca de um mês, um processo que normalmente leva anos. O driver executa Chrome e Firefox com WebGL e Minecraft a 200fps. Envolveu engenharia reversa do ABI do firmware da GPU AGX e componentes de espaço do usuário de forma limpa.

Anteriormente, construí um hipervisor para fazer engenharia reversa do macOS. Nosso objetivo era implementar drivers OpenGL conformes (e em breve Vulkan). Fizemos engenharia reversa do espaço do usuário do M4, A18 Pro e M5, construímos um compilador IR/shader personalizado, um construtor de fluxo de comandos e um driver completo do kernel Linux. Usamos apenas rastreamentos de hardware e nossos próprios shaders, tratando os blobs da Apple como opacos.

O driver do kernel se comunica com o firmware da GPU executando RTKit, não diretamente com o hardware. O ABI do firmware foi a parte mais irritante, com estruturas compartilhadas intercalando campos de firmware e host. Asahi Lina descobriu isso para M1/M2 durante exaustivos dias de 12 horas.

O código não está pronto para usuários finais, mas nosso objetivo é entregá-lo a eles em breve.

Entidades-chave: Empresas: Apple | Pessoas: Cody Ho, Niklas, Asahi Lina