Microsoft hat das DirectX 12 Agility SDK in der Version 1.613.0 am 11. März 2024 freigegeben und damit eine Reihe zentraler Grafikfunktionen aus dem Vorschaustadium in den Retail-Status überführt. Im Zentrum steht Work Graphs 1.0, das Microsoft im Umfeld der GDC 2024 als produktionsreif einstuft. Begleitet wird die Auslieferung von Shader Model 6.8 und den GPU Upload Heaps, die ebenfalls den Schritt vom Developer Preview zum verbindlichen Funktionsumfang vollziehen.
Work Graphs beschreibt ein GPU-getriebenes Programmiermodell, bei dem die GPU Arbeitspakete eigenständig erzeugt und einplant, ohne dass der CPU-Host die Steuerung übernimmt. Damit entfällt das wiederholte Synchronisieren zwischen CPU und GPU, das bislang bei datenabhängigen Pipelines Wartezeiten verursacht hat. Microsoft nennt für solche Strukturen niedrigere Latenzen, höheren Durchsatz und bessere Skalierbarkeit als Effekt. Die Treiberseite war zum Start abgedeckt. Sowohl AMD als auch NVIDIA stellten am Tag der Veröffentlichung passende Treiber bereit, AMD aktualisierte zudem die Beispielprojekte.
Work Graphs 1.0 als GPU-getriebenes Programmiermodell
Der praktische Nutzen von Work Graphs liegt nach Darstellung von AMD vor allem bei sogenannten Classify-then-execute-Szenarien, bei denen Eingangsdaten zunächst klassifiziert und anschließend in unterschiedliche Verarbeitungspfade verteilt werden. Solche Muster waren in herkömmlichen Pipelines durch den Speicherbedarf für Zwischenergebnisse begrenzt. Work Graphs adressiert diese Speichereffizienz, indem die GPU nachfolgende Arbeitspakete erst bei Bedarf erzeugt. Die API tritt damit neben die bestehenden Compute- und Grafik-Pipelines und richtet sich an Engine-Entwickler, die prozedurale oder verzweigte GPU-Lasten ohne Rückkanal zum Host abbilden wollen.
Eng verknüpft mit Work Graphs ist Shader Model 6.8, das die zugehörigen Shader-Knotentypen definiert. Darüber hinaus bringt Shader Model 6.8 weitere Funktionen: System-Werte für Start Vertex und Start Instance Location, eine konfigurierbare Wave Size Range sowie erweiterte Optionen beim Comparison Sampling. Ergänzend führt das SDK Incrementing Constants in ExecuteIndirect ein und erweitert mit Generic Programs in State Objects die Shader-Definition auf Vertex-, Mesh- und Compute-Pipelines.
GPU Upload Heaps und Werkzeugunterstützung
Mit den GPU Upload Heaps erreicht eine weitere Funktion den Retail-Status. Sie nutzen die Resizable-BAR-Technik, über die die CPU Daten mit geringerer Latenz direkt in den GPU-Speicher schreibt. Voraussetzung auf Windows-Seite ist laut Microsoft der Windows 11 Insider Preview Build 26080 oder neuer. Für die Entwicklungsarbeit steht die Unterstützung durch das Analysewerkzeug PIX bereits zum Start bereit, sodass sich die neuen Funktionen vom ersten Tag an instrumentieren lassen.
Für die Praxis bündelt Agility SDK 1.613.0 damit mehrere zuvor separat erprobte Bausteine zu einem verbindlichen Funktionsstand. Engine-Entwickler im Xbox- und PC-Umfeld können Work Graphs, Shader Model 6.8 und die GPU Upload Heaps ohne Preview-Vorbehalt in produktive Pipelines übernehmen. Die zeitliche Nähe zur GDC 2024 zeigt, dass Microsoft die GPU-getriebene Arbeitsverteilung als Grundlage für künftige Render- und Rechenpfade positioniert.