Zum Hauptinhalt Zur Navigation

Mesa: Freier OpenGL-Treiber für Apples M1-GPU vorgestellt

Das Reverse Engineering der GPU in dem Apple -SoC M1 geht zügig voran. Nun steht ein initialer OpenGL-Treiber als Open Source bereit.
/ Sebastian Grüner
8 Kommentare News folgen (öffnet im neuen Fenster)
Der erste freie Grafiktreiber des Asahi-Linux-Projektes ist lauffähig. (Bild: Asahi Linux)
Der erste freie Grafiktreiber des Asahi-Linux-Projektes ist lauffähig. Bild: Asahi Linux / CC-BY-SA 4.0

Die Entwicklerin Alyssa Rosenzweig hat einen initialen freien 3D-Grafiktreiber(öffnet im neuen Fenster) für die als AGX bezeichnete GPU in Apples ARM-SoC M1 als Open Source veröffentlicht. Der Treiber-Code basiert auf der Userspace-Bibliothek Mesa und nutzt dessen interne Gallium-3D-Infrastruktur, auf der viele weiter freie 3D-Treiber aufbauen.

Wie Rosenzweig in einem dazu veröffentlichten Blogpost(öffnet im neuen Fenster) schreibt, handelt es sich bei dem nun verfügbaren Treiber um eine Implementierung großer Teile der Spezifikationen OpenGL 2.1 und OpenGL ES 2.0. Mithilfe des freien Treibers samt dazugehörigem Compiler sei es damit möglich, einfache OpenGL-Anwendungen darzustellen. Rosenzweig nennt als Beispiele etwa das in Mesa enthaltene Glxgears oder auch Szenen aus der Glmark2-Benchmark-Sammlung.

Das Gallium-Framework ermögliche den Fokus auf die Arbeiten am Treiber-Backend, da im Frontend, also etwa für OpenGL, sehr viele bestehende Teile wiederverwendet werden könnten, so Rosenzweig. Das hilft insbesondere bei dem Treiber-Code für die Apple-GPU offenbar sehr, da die Entwicklerin zahlreiche konkrete von ihr genutzte Beispiele aufführt.

Reverse Engineering bleibt viel Arbeit

Trotz des veröffentlichten Userspace-Treibers bleibt laut Rosenzweig die Umsetzung des Linux-Kernel-Treibers. Dies sei üblicherweise eher einfach, der komplexe Teil liege im Userspace-Teil des Treibers. Unter MacOS sei dies jedoch nicht so und die GPU auch entsprechend gestaltet , was weitere Probleme nach sich ziehe.

Rosenzweig schreibt dazu: "Die gute Nachricht ist, dass viele dieser Elemente vereinfacht werden können, wenn wir einen Linux-Kernel-Treiber schreiben. Die schlechte Nachricht ist, dass im Reverse Engineering jedes dieser Elemente notwendig ist und diese in Mesa implementiert werden müssen, wenn wir native Vulkan-Unterstützung auf Macs wollen."

Das Reverse Engineering der Apple-GPU in dem ARM-SoC M1 durch Rosenzweig und andere Beteiligte entsteht als Teil des Asahi-Linux-Projekts , das einen Linux-Port auf die neuen Macs mit der sogenannten Apple-Silicon-CPU anstrebt. Ein erster Teil der dazu notwendigen Arbeiten ist bereits im Linux-Kernel gelandet .


Relevante Themen