Microsoft hat am 11. März 2024 zur GDC 2024 die finale Work-Graphs-API für Direct3D 12 freigegeben und parallel dazu PIX on Windows 2403.08 mit vollständiger Capture- und Replay-Unterstützung dafür veröffentlicht. Work Graphs verlassen damit den seit 2023 laufenden Preview-Status und stehen über das Agility SDK 1.613.0 als Retail-Funktion bereit. Das Konzept verlagert die Planung von GPU-Arbeit auf die GPU selbst. Shader-Threads als Produzenten können weitere Arbeit als Konsumenten anfordern, ohne dass ein Rückweg über die CPU notwendig wird.
Work Graphs verlagern die Arbeitsplanung auf die GPU
Der Kern der API ist der Aufruf DispatchGraph(), der einen Graphen aus Knoten startet und seine Argumente wahlweise aus CPU- oder GPU-Speicher entgegennimmt. Komplexe Pipelines, deren Form zur Laufzeit stark variiert, lassen sich so auf der GPU ausführen, während der Scheduler Synchronisation und Datenfluss übernimmt. Typische Anwendungsfälle sind Culling, Binning und das Verketten von Compute-Arbeit. Die Idee, Arbeit dichter an die Hardware zu rücken und den Treiber-Overhead zu senken, zieht sich seit der Ankündigung von DirectX 12 als Low-Level-API durch die gesamte Entwicklung von Direct3D 12. Mit dem Wechsel von Preview zu final ändern sich die Schnittstellen. Der Aufruf D3D12EnableExperimentalFeatures() entfällt, ID3D12DeviceExperimental wird durch ID3D12Device14 ersetzt, und statt der experimentellen Variante wird D3D12_FEATURE_D3D12_OPTIONS21 abgefragt. Das Agility SDK 1.613.0 bündelt neben Work Graphs weitere zur GDC 2024 gezeigte Funktionen, darunter GPU Upload Heaps, Shader Model 6.8 und Generic Programs in State Objects.
PIX 2403.08 bringt Capture und Replay für DispatchGraph
PIX on Windows in der Version 2403.08 bietet ab dieser Ausgabe vollständige Capture- und Replay-Unterstützung für die Work-Graphs-API. Erfasst und untersucht werden können Event-Details, das Layout der Local Root Arguments Table (LRAT), die Node-Inputs sowie eine detaillierte Aufschlüsselung der State Objects. Für DispatchGraph()-Aufrufe stehen zudem Hardware-Counter und entsprechende Diagramme bereit. Die Ausgabe enthält daneben Verbesserungen beim Shader-Debugging, die die Startzeit in einem genannten Beispiel eines größeren DXR-Engine-Samples von über fünf Minuten auf rund 30 Sekunden reduzieren. Mit der zeitgleichen Freigabe von API, SDK und Tooling steht Entwicklern zum Zeitpunkt der GDC 2024 eine geschlossene Werkzeugkette für Analyse und Fehlersuche an Work Graphs zur Verfügung. Wie wichtig solche Werkzeuge im Alltag von Studios sind, zeigte sich auf derselben Messe auch beim Thema Observability für reibungslose Online-Game-Launches.
Die Angaben basieren auf der Originalquelle und Originalquelle.
