# omnux-gpu: I opened an MIT siege for M3 pixels and refused to call it a driver

Source: https://www.michaelchurley.com/blog/omnux-gpu-mit-clean-room-m3-siege  
Published: 2026-08-24  
Author: Michael C. Hurley  
Tags: omnux-gpu, omnux, asahi, apple-silicon, m3, gpu, agx, clean-room, mit, linux, reverse-engineering

![OMNUX-GPU, MIT clean-room siege for M3 pixels](/blog/omnux-gpu-mit-clean-room-m3-siege/cover.png)

![Honest state, scaffold only; no working driver](/blog/omnux-gpu-mit-clean-room-m3-siege/screenshots/honest-state.png)

## Who

I am the person who already said the quiet part on the Omnux umbrella post: M3 installs today, software-rendered, and software rendering is not a desktop.

This piece is for a narrower audience.

M3 owners who will lend a machine for m1n1 proxyclient captures. Reverse engineers who already know Asahi's AGX story on M1/M2 and want the T603x/T8122 delta wall documented without contamination. DRM and Mesa people who treat "working" as render nodes plus glmark on metal, not a README adjective. License hawks who care that MIT stays clean before `src/` fills. Agent operators grinding capture loops under the same agent-army mandate that sits in Omnux GOAL.

If you need an install one-liner or a diagnostics tarball, see the sibling posts. If you need the GPU long pole named as a project with acceptance criteria, this is it.

## What

I stood up **omnux-gpu**, a standalone MIT repo whose value is honesty about what is missing.

It is an attempt at a clean-room GPU driver for Apple M3-series silicon. License: MIT. Upstream may take everything; that is the point. The repository holds scaffolding, a research roadmap, tooling stubs, and eventually driver code. It does **not** yet contain a working driver. Nothing here claims otherwise until pixels appear on a physical M3.

![Repo layout, docs, tools, empty src, MIT LICENSE](/blog/omnux-gpu-mit-clean-room-m3-siege/screenshots/repo-layout.png)

Three reverse-engineering walls stand between scaffold and acceleration:

1. **Command processor submission model.** How macOS userspace submits work to AGX firmware on T8122/T603x (differs from M2).
2. **Shader ISA deltas.** M3 brought Dynamic Caching, mesh shaders, hardware ray tracing; instruction encoding moved vs M1/M2.
3. **Firmware interface.** Version negotiation, queues, faults against shipping macOS AGX firmware (issues call 14.8.3+ as the field floor).

![Three RE walls, CP submission, ISA deltas, firmware interface](/blog/omnux-gpu-mit-clean-room-m3-siege/screenshots/re-walls.png)

Each wall is only discoverable against real hardware, using m1n1's proxyclient tracing on a machine booted into macOS with instrumentation. Code written away from the metal is guesswork.

The method is a loop:

1. **Capture.** Target M3 into m1n1 proxyclient from a second USB host; run macOS GPU workloads under `agx_*` experiments adapted for newer ABI.
2. **Diff.** Compare to known M1/M2 models; land deltas in `docs/`.
3. **Implement.** Clean-room sources in `src/` from documented behavior only.
4. **Validate.** kexec Omnux kernel with the driver; iterate until DRM render nodes exist and glmark runs.
5. **Publish.** Every milestone upstream to Asahi first.

![Method loop, Capture Diff Implement Validate Upstream](/blog/omnux-gpu-mit-clean-room-m3-siege/screenshots/method-loop.png)

Fifteen public issues map the work. Issues #1–#8 are the GPU spine: capture harness, submission-model docs, ISA delta docs, firmware-interface docs, DRM skeleton (probe + firmware load + first render node **without** claiming acceleration), Mesa Honeykrisp/agx bring-up for G15-class, t603x power/PMP/thermal, and a local validation harness (kexec + glmark2/vkcube to signed JSON, own metal, no hosted CI theater). Issue #9 is the license immune system: `docs/CLEANROOM.md`, PR source disclosure, taint procedure, before any non-scaffold code lands. Issues #10–#15 park SEP/TouchID research on the same tracker so the wall is visible; the biometrics frontier and omnux-report evidence collectors are sibling stories.

`src/` is empty on purpose. Contaminated contribution (decompiled Apple code, NDA headers, GPL-mixed paste) poisons the MIT claim. The audit process has to exist before the directory fills.

## Where

It lives where M3 metal and a second USB host can sit on the same desk.

Repo: [michaelmonetized/omnux-gpu](https://github.com/michaelmonetized/omnux-gpu). Parent umbrella wires it as `gpu/` under [michaelmonetized/omnux](https://github.com/michaelmonetized/omnux). Diagnostics sibling: [omnux-report](https://github.com/michaelmonetized/omnux-report). Logs, sysinfo, ADT helper, SEP collectors with redaction; useful for evidence, not a substitute for AGX traces.

SoCs in scope: T603x / T8122 class. Capture target: shipping macOS firmware on those chips. Validation target: Omnux kernel kexec'd from m1n1 until `/dev/dri/renderD*` appears and the acceptance harness stops lying.

If you have hardware to lend, the README says open an issue. That is the bottleneck.

## When

**2026-08-24.** Single scaffold commit `a3b7f74`: MIT LICENSE, honest README, `docs/NOTES.md` placeholder, empty `src/`, stub `tools/`. Created the repo the day before the Omnux umbrella monorepo week. One commit. That is still the commit graph.

**2026-08-25.** Siege map lands as public issues #1 through #9 while Omnux M0 is getting wired. Capture harness called the critical path. Clean-room audit filed as blocking-by-convention and cheap: do it before code, not after a lawsuit hypothetical.

**2026-08-26 to 2026-08-27.** Issues #10–#15 add the SEP/TouchID research program to this tracker (T1 community win, T2 bridge, omnux-report SEP section, apstrand frontier notes). Useful adjacency. Still zero GPU capture artifacts under `docs/captures/`. Still no DRM skeleton. The calendar moved; the metal bottleneck did not.

**2026-09-08.** This pack. Still scaffold. Still fifteen open issues. Still waiting on an M3-class machine in the harness loop.

![Issue map, GPU #1–#8, clean-room #9, SEP adjacency #10–#15](/blog/omnux-gpu-mit-clean-room-m3-siege/screenshots/issue-map.png)

## Why

Omnux can already tell the truth about M3 installs. Truth without a GPU project is a permanent software-render sentence dressed up as a roadmap.

I wanted a repo whose license Asahi can absorb without a negotiation. I wanted "working" defined as pixels and scores on metal. I wanted the three RE walls named so contributors argue about captures. I wanted the clean-room gate written before the first real C file, because MIT is easy to claim and hard to un-poison.

The ask is not stars. The ask is hardware in the capture loop, and issue checkboxes that turn green only when the acceptance criteria say so.
