Das DirectX-Entwicklerteam von Microsoft hat am 18. Juli 2024 eine Preview für Mesh Nodes in D3D12 Work Graphs vorgestellt. Mit der Erweiterung lassen sich Grafikprogramme erstmals direkt aus einem Work Graph heraus auf der GPU ansteuern, sodass die Rasterisierung ohne Umweg über die CPU aus dem Graphen getrieben werden kann. Bislang waren Work Graphs auf reine Compute-Knoten beschränkt. Mesh Nodes öffnen den Ansatz nun für die klassische Grafikpipeline.
Work Graphs erreichten am 11. März 2024 den offiziellen Release. Das Modell erlaubt es Shader-Threads auf der GPU, weitere Arbeit anzufordern und so einen Graphen aus verbundenen Knoten aufzuspannen, dessen Scheduling und Datenfluss die Laufzeit selbst verwaltet. Mesh Nodes setzen an den Blättern eines solchen Graphen an und koppeln einen Mesh-Launch-Node-Shader mit Grafik-Pipeline-Zuständen wie Pixel-Shader, Rasterizer- und Blend-State. Diese Bündelung erfolgt als sogenanntes Generic Program, das im Zustandsobjekt die Rolle eines Pipeline State Objects einnimmt. Damit reiht sich Mesh Nodes in eine Folge jüngerer DirectX-Erweiterungen ein, zu denen auch das zuvor vorgestellte DirectSR für Upscaling-Technologien zählt.
GPU-getriebene Auswahl von Grafikprogrammen
Der Kern der Preview ist die GPU-getriebene Auswahl von Grafikprogrammen auf dem PC. Anstatt dass die CPU die Abfolge der Rasterisierungs-Aufrufe vorgibt, können die Blätter des Work Graph den Rasterizer ansteuern. Mesh Nodes sind dabei als Blätter konzipiert und nicht als Einstiegspunkte des Graphen, auch wenn die mitgelieferten Beispiele sie optional als Entrypoints demonstrieren. So eignet sich der Ansatz für Producer-Consumer-Pipelines, wie sie in Rendering-Algorithmen verbreitet sind, bei denen eine erste Berechnung auf der GPU bestimmt, welche Grafikarbeit als Nächstes anfällt. Ähnliche GPU-zentrierte Rendering-Konzepte greifen mittlerweile auch andere Hersteller auf, etwa im Umfeld von NVIDIAs RTX-Remix-Workflow.
Voraussetzungen für Treiber, SDK und Shader-Compiler
Für den praktischen Einsatz ist Work-Graphs-Tier 1.1 erforderlich. Microsoft nennt für die Preview das Agility SDK in der Version 1.715.0 sowie den DirectX Shader Compiler in der Mesh Nodes Preview Release v1.8.2405. Mesh-Node-Shader werden gegen das Ziel lib_6_9 kompiliert, und der Windows-Entwicklermodus muss aktiviert sein. Auf Hardwareseite unterstützt AMD die Vorschau über den Adrenalin-Treiber 24.10.30.01 für die Radeon-RX-7000-Serie, mit einer geplanten öffentlichen Treiberveröffentlichung im dritten Quartal 2024. Für NVIDIA, Intel und Qualcomm verweist Microsoft auf die jeweiligen Developer-Relations-Kontakte. Wer keine passende Hardware besitzt, kann auf einen WARP-Preview-Build als Software-Rasterizer zurückgreifen.
