Skip to content
NewA calmer, faster ZeroHour

Building a Linux GPU Driver for the M4 Mac Mini in One Month

Hacker News · AIby ADevWithAnIdea ()15 min read3 · 3 reads
AI summary · glm-5.3Summaries by Vani AI

Two developers built a fully OpenGL ES 3.0 compliant Linux GPU driver for the M4 Mac Mini in one month via clean-room reverse engineering.

Niklas and the author reverse engineered Apple's AGX GPU firmware ABI and user-space components in about a month, a process that normally takes years, producing an OpenGL ES 3.0 conformant driver fast enough to run Minecraft at 200fps on an M4 Mac Mini. The work was done transparently using hypervisor traces without examining Apple binaries, following clean-room practices, and included a custom shader compiler, command stream builder, and a full Linux kernel driver for the firmware ABI. The A18 Pro firmware ABI proved significantly more complex than the M1's, with 1.5x as many structs and twice as many pointers. All experiments and provenance evidence were published in public agx-re repositories.

Key facts
  • Full OpenGL ES 3.0 driver for M4 Mac Mini built in roughly one month
  • AGX firmware ABI reverse engineered from hypervisor traces, clean-room style
  • A18 Pro firmware ABI has 1.5x more structs and twice the pointers of M1
  • Achieved 200fps Minecraft; Chrome and Firefox WebGL compositing works
  • LLM-assisted replay experiments reduced captured state until rebuilt from source
Analyze this story with Vani AIImpact, who is affected and what defenders should do, in a new chat

From the original article

15 min read at codyho.dev

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

Hacker News · AI

By ADevWithAnIdea · codyho.dev

Read the full article at Hacker News · AI

A short excerpt; the article and its images belong to the publisher. Summary, key facts and assessment above are AI-written from the article and can be wrong.