Eine Woche nach der Vorstellung von DirectX 12 Ultimate hat Microsoft mit PIX on Windows am 26. März 2020 die Version 2003.26 veröffentlicht, die als erstes Performance- und Debugging-Werkzeug die neuen Funktionen der Grafik-API abdeckt. Das Release bringt initiale Unterstützung für sämtliche DirectX-12-Ultimate-Funktionen, namentlich DirectX Raytracing Tier 1.1, Mesh Shaders und Sampler Feedback. Variable Rate Shading war bereits mit PIX 1903.26 in das Werkzeug eingezogen.
Die zeitliche Nähe ist kein Zufall. DirectX 12 Ultimate wurde am 19. März 2020 als gemeinsamer Funktionsumfang für Windows 10 und die kommende Xbox Series X angekündigt. Microsoft hatte bei dieser Gelegenheit angeführt, dass PIX und der quelloffene HLSL-Compiler die Optimierungsarbeit der Studios begleiten sollen. Mit dem nun nachgeschobenen PIX-Release liegt der Werkzeug-Unterbau für die nächste Generation der Spielegrafik vor, bevor die entsprechende Hardware breit verfügbar ist.
Quellcode-Debugging für DXIL-Shader
Neben der API-Abdeckung erweitert das Release die Shader-Debugging-Fähigkeiten von PIX. Laut Microsoft unterstützt das Werkzeug nun das Source-Level-Debugging von DXIL-Shadern vollständig, einschließlich Werten und Typen lokaler Variablen sowie der Navigation durch den Aufrufstapel. DXIL, das auf LLVM aufsetzende Zwischenformat der DirectX-Shader, war bislang nur eingeschränkt auf Quelltextebene analysierbar. Die jetzt mögliche Navigation durch lokale Variablen und Stack erlaubt es Entwicklern, Shader-Logik unmittelbar gegen den ursprünglichen Code zu prüfen, anstatt auf der Ebene des kompilierten Codes zu arbeiten. Wie sehr sich solche Shader-getriebenen Effekte inzwischen in modernen Pipelines verbreitet haben, zeigt der Bedarf an präziseren Analysewerkzeugen.
Ergänzt wird das Release durch eine überarbeitete Timeline-Darstellung in GPU-Captures mit verbessertem Textrendering sowie eine neue Korrelation zwischen CPU- und GPU-Ereignissen in Timing-Captures. Hinzu kommen Fehlerbehebungen und Leistungsverbesserungen.
Geändertes Capture-Format als Stolperstein
Für bestehende Projekte birgt das Release einen Bruch in der Kompatibilität. Das Dateiformat der Timing-Captures wurde geändert, weshalb mit älteren PIX-Versionen erstellte Timing-Captures in der neuen Version nicht mehr geöffnet werden können. Microsoft begründet dies damit, dass ältere Captures keine Versionsinformation aufzeichneten, sodass PIX nicht ermitteln kann, mit welcher Version eine Aufzeichnung entstanden ist. Als Ausweg verweist das Unternehmen darauf, dass sich mehrere PIX-Versionen parallel installieren lassen, um Zugriff auf ältere Aufzeichnungen zu behalten.
Studios mit umfangreichen Beständen an Profiling-Daten müssen die Umstellung daher planen. Wer auf historische Timing-Captures angewiesen ist, etwa für den Vergleich von Performance-Verläufen über Entwicklungszyklen hinweg, kommt um eine Doppelinstallation nicht herum. Für neue Aufzeichnungen entfällt das Problem, da künftige Captures die Versionsinformation mitführen.