Linux auf Apple Silicon: Vulkan Gaming auf Apples M1-Chip

Marek Lindlein
28 Kommentare
Linux auf Apple Silicon: Vulkan Gaming auf Apples M1-Chip

Seit Apple eigene Prozessoren auf Arm-Basis entwickelt, gibt es auch große Bemühungen in der Linux Community das freie Betriebssystem darauf lauffähig zu machen. Federführend ist hierbei die Distribution Asashi Linux, unter welcher nun erste Spiele über Vulkan auf Apple Silicon in Form des M1 laufen.

Komplexes Zusammenspiel diverser Software

Das Spielen eines typischen Windows-Spiel auf einem Linux-Apple erfordert das Überwinden mehrerer Hürden. Beginnend mit der unterschiedlichen Prozessor-Architektur, müssen die für x86 entwickelten Windows-Titel erst mit FEX-Emu zu Arm übersetzt werden. Für die Übersetzung von Windows zu Linux kommt wie üblich Wine zum Einsatz. Da aber auch die Grafik-Schnittstelle DirectX nicht einfach unter Linux verwendet werden kann, wird auf die Tools dxvk und vkd3d-proton zurückgegriffen. Eine weitere Herausforderung bei der Umsetzung von Windows Spielen unter Linux auf einem Arm-Apple-Gerät war die Page-Size. Während x86 auf 4096 Byte setzt, setzen Apple-Systeme auf 16k große Speicherbereiche. Um das zu umgehen wird unter Asashi Linux eine winzige virtuelle Maschine mit einem angepassten Linux-Kernel betrieben und die GPU sowie Eingaben durchgeschleift. Wichtig für den gesamten Vorgang ist allerdings ein Apple-Modell mit 16-GB-RAM.

Vulkan auf Apple Silicon

Eine der größten Herausforderungen war die Notwendigkeit der Verfügbarkeit von Vulkan für Apples Hardware, wohingegen Apple selbst keinen Vulkan-Treiber bereit stellt, sondern auf Metal setzt. Entsprechend musste dieser von Grund auf neu entwickelt werden, was zu Beginn diesen Jahres innerhalb eines Monats gelungen ist und auch vom Entwickler in Form eines Blog-Eintrags festgehalten wurde. Davon abgesehen stellte Apples Hardware die Entwickler vor weitere Schwierigkeiten, welche auf die Besonderheiten der Architektur zurückzuführen ist.

Für Tessellation greifen Grafikkarten in der Regel auf spezielle Hardware-Einheiten zurück. Auch Apples Grafikprozessor verfügt über solche, doch sind diese für Umsetzung wie in DirectX, Vulkan oder OpenGL vorgesehen zu limitiert. Daher musste hier auf Compute Shader zurückgegriffen werden.

Auch bei Geometrie Shadern gibt es Einschränkungen auf dem M1-Chip, sodass auf Compute Shader zurückgegriffen werden muss. Diese Implementierung ist entsprechend langsamer, aber laut Entwicklern immer noch schnell genug.

Anstehende Weiterentwicklung

Als nächstes Entwicklungsziel wird die Unterstützung von als Mega-Textures bekannten Sparse-Textures vorangetrieben. Spiele ohne dieses Features, wie zum Beispiel Cyberpunk 2077, sind bereits lauffähig. Generell soll die Performance verbessert werden, da AAA-Titel oft daran scheitern 60 FPS zu erreichen. Es ist hingegeben bereits heute möglich Indie-Games wie Hollow Knight ohne einbußen zu spielen. Was aber heute bereits möglich ist sind Titel wie Portal 2 und Control. Weitere Spiele dürften entsprechend in absehbarer Zeit folgen, da die Grundsteine bereits gelegt worden sind.