Desarrollo de un driver GPU para Mac Mini M4 en un mes

Fuentes: Building a GPU Driver for M4 Mac Mini in One Month

Niklas y el autor han desarrollado un driver gráfico para GPU AGX compatible con OpenGL ES 3.0 para el Mac Mini M4 y el MacBook Neo, completando el proyecto en aproximadamente un mes. Este logro es notable porque el desarrollo de drivers gráficos de este tipo normalmente requiere años de trabajo. El objetivo principal era permitir el uso de WebGL en navegadores como Chrome y Firefox, así como ejecutar juegos como Minecraft a 200 fps, logrando un rendimiento suficiente para aplicaciones modernas.

El proceso implicó la ingeniería inversa del firmware ABI de Apple y la implementación de un driver de espacio de usuario con un compilador de shaders personalizado. A diferencia de otros proyectos, el equipo no utilizó binarios de Apple, sino que trabajó exclusivamente con trazas de hardware y shaders generados por sí mismos, manteniendo una implementación limpia y verificable. El desafío técnico más significativo fue la complejidad del firmware ABI de la AGX, que presenta una estructura de memoria compartida más complicada que la de los modelos anteriores (M1/M2), con 1,5 veces más estructuras y el doble de punteros.

Para resolver esto, el equipo utilizó un hipervisor previamente creado para capturar el estado de la memoria y reproducir eventos del firmware. La ingeniería inversa de la interfaz de aplicación de firmware (ABI) fue el paso más difícil, requiriendo la identificación de campos de memoria específicos y la resolución de problemas de captura de trabajo de renderizado y cómputo. El proyecto está aún en fase de desarrollo y no está listo para usuarios finales, pero el código ha sido publicado para permitir la verificación de la proveniencia del trabajo.