HeadlinesBriefing favicon HeadlinesBriefing.com

GPU-Treiber für M4 Mac in einem Monat

Hacker News •
×

Niklas und ich haben in etwa einem Monat einen vollständig OpenGL ES 3.0-konformen GPU-Treiber für den M4 Mac Mini und das MacBook Neo gebaut, ein Prozess, der normalerweise Jahre dauert. Der Treiber führt Chrome und Firefox mit WebGL und Minecraft mit 200fps aus. Es beinhaltete Reverse Engineering der Firmware-ABI der AGX GPU und der User-Space-Komponenten auf saubere Weise.

Zuvor habe ich einen Hypervisor gebaut, um macOS zu reverse engineeren. Unser Ziel war es, konforme OpenGL- (und bald Vulkan-) Treiber zu implementieren. Wir haben den User Space von M4, A18 Pro und M5 reverse engineert, einen benutzerdefinierten IR/Shader-Compiler, einen Command-Stream-Builder und einen vollständigen Linux-Kernel-Treiber gebaut. Wir haben nur Hardware-Traces und unsere eigenen Shader verwendet und Apples Blobs als undurchsichtig behandelt.

Der Kernel-Treiber kommuniziert mit der GPU-Firmware, die RTKit ausführt, nicht direkt mit der Hardware. Die Firmware-ABI war der nervigste Teil, mit gemeinsamen Strukturen, die Firmware- und Host-Felder verschachteln. Asahi Lina hat dies für M1/M2 während mühsamer 12-Stunden-Tage herausgefunden.

Der Code ist noch nicht für Endbenutzer bereit, aber wir wollen ihn ihnen bald zur Verfügung stellen.

Wichtige Entitäten: Unternehmen: Apple | Personen: Cody Ho, Niklas, Asahi Lina