Building a Linux GPU Driver for the M4 Mac Mini in One Month
Two developers, Niklas and Codyho, successfully built a fully OpenGL ES 3.0 compliant GPU driver for the M4 Mac Mini and MacBook Neo in approximately one month, a process typically taking years. This achievement involved reverse engineering Apple's AGX GPU firmware in a clean-room manner, enabling applications like Chrome, Firefox, and Minecraft to run efficiently on Linux.
Why it matters
This breakthrough demonstrates the feasibility of open-source GPU drivers for Apple Silicon, potentially expanding the utility of M-series Macs for Linux users and challenging Apple's traditionally closed hardware ecosystem. It represents a significant technical achievement in reverse engineering and driver development.
Previous blog post: https://codyho.dev/blog/hypervisor-macbook-neo/
TL;DR: Niklas and I built a fully OpenGL ES 3.0 compliant GPU driver for the M4 Mac Mini and MacBook Neo in about a month, a process which normally takes years. Here is Chrome and Firefox running WebGL on the M4 Mac Mini with working compositing:
Most importantly, the driver is fast enough to run Minecraft at 200fps:
Building this driver involved reverse engineering the AGX's (Apple's name for the GPU) incredibly complicated firmware ABI and user-space components. This was all done in a transparent, verifiably clean room manner using well established techniques. The code is not yet ready for end users, but we are looking to get it to end users as soon as possible.
Get smarter about the news
Sign up free for a feed built around what you actually care about, Dive Deeper research on any story, and the full text of every article.
Create free accountAlready have an account? Sign in