Zum Hauptinhalt Zur Navigation

DirectX 12: Microsoft legt Shader-Compiler offen

Der Compiler für Microsofts Shader-Sprache HLSL ist Open Source. Das Werkzeug ist Teil von DirectX 12 und basiert auf LLVM sowie dessen Frontend Clang. HLSL ist damit effektiv nicht mehr proprietär und für die Treiberentwickler ergeben sich daraus einige Vorteile.
/ Sebastian Grüner
14 Kommentare News folgen (öffnet im neuen Fenster)
Die Entwickler von Grafiktreibern können jetzt auch den HLSL-Compiler hacken. (Bild: Martin Wolf / Golem.de)
Die Entwickler von Grafiktreibern können jetzt auch den HLSL-Compiler hacken. Bild: Martin Wolf / Golem.de

Der Compiler für die Shader-Sprache HLSL von Microsoft ist als Open Source verfügbar, wie das Unternehmen im DirectX-Entwickler-Blog(öffnet im neuen Fenster) bekanntgibt. HLSL sowie der zugehörige Compiler sind Teil der 3D-Grafikbibliothek DirectX. Das freie Analog in OpenGL heißt GLSL. Mit Hilfe dieser Shader-Sprachen können 3D-Effekte programmiert werden.

In DirectX erzeugt der HLSL-Compiler eine bestimmte Art Binärcode, den die Grafiktreiber wiederum so anpassen müssen, dass die Grafikkarten diesen ausführen können. Für Letzteres haben moderne Grafikkarten spezielle Shader-Einheiten. Der nun verfügbare Compiler kann für das sogenannte Shader Model 6.0(öffnet im neuen Fenster) genutzt werden, das Teil von DirectX 12 ist und im vergangenen Jahr auf der Game Developers Conference (GDC) vorgestellt worden(öffnet im neuen Fenster) ist.

Die wohl wichtigste Neuerung des Shader Model 6.0 sind die sogenannten Wave Intrinsics(öffnet im neuen Fenster) . Mit Hilfe dieser wird ein neues Programmiermodell umgesetzt, das es ermöglicht, sich von der bisher auf einen Thread beschränkten Ausführung zu lösen und stattdessen künftig mehrere GPU-Threads zu nutzen. Das wiederum soll letztlich die Leistung steigern können.

LLVM und Clang als Grundlage

Bisher nutzte Microsoft als Shader-Compiler die Eigenentwicklung Fxc. Der neue DirectX Shader Compiler basiert dagegen auf dem als Compiler-Baukasten genutzten LLVM sowie dessen Frontend für C-artige Sprachen, Clang. Für Microsoft ergibt sich daraus unter anderem der Vorteil, die vielen Optimierungsmöglichkeiten nutzen zu können, die LLVM bereits enthält. Mit dem Wechsel entsteht auch ein neues Binärformat für die Shader: DXIL.

Die meisten Grafiktreiber-Entwickler sollten inzwischen Erfahrung und tiefgreifende Kenntnisse im Umgang mit LLVM haben, da das Projekt in diesem Bereich mittlerweile vielseitig eingesetzt wird. Die Offenlegung des Compilercodes begründet Microsoft zudem damit, dass die Community nun an der Entwicklung teilhaben kann. Somit wird auch die bisher proprietäre Sprache HLSL effektiv zu einem Open-Source-Projekt, das durch Beiträge von außen verbessert werden kann.

Der neue Compiler steht auf Github unter MIT-Lizenz zum Download(öffnet im neuen Fenster) bereit und kann mit dem Insider-Build 15007 von Windows 10 getestet werden. Diese Version kann bereits DXIL-Shader ausführen. Weitere Details zu dem Compiler finden sich im Projekt-Wiki(öffnet im neuen Fenster) auf Github.


Relevante Themen