Microsoft hat am 30. Januar 2025 die Vorschauversion PIX 2501.30-preview für das Performance- und Debugging-Werkzeug PIX on Windows veröffentlicht. Die Version führt mit Application Specific Driver State und Recreate At GPUVA zwei Funktionen ein, die auf eine stabilere Capture- und Replay-Pipeline zielen, und ergänzt Unterstützung für das in der DirectX 12 Agility SDK 1.716.0-preview eingeführte Tight Alignment. Beide neuen Funktionen sind standardmäßig deaktiviert und lassen sich über File > Settings aktivieren.
Stabileres Capture und Replay durch Treiberzustand und GPUVA
Application Specific Driver State adressiert Stabilitätsprobleme zwischen Aufzeichnung und Wiedergabe, die durch treiberseitige Sonderbehandlungen einzelner Anwendungen entstehen. Grafiktreiber aktivieren über sogenanntes App-Detect-Verhalten je nach erkannter Anwendung spezifische Workarounds. Wird eine Aufzeichnung außerhalb dieser Anwendung wiedergegeben, fehlt der passende Treiberzustand. PIX erfasst nun aktive anwendungsspezifische Workarounds, legt sie in der Capture-Datei ab und weist den Treiber an, sie zur Wiedergabezeit zu setzen. Eine Einschränkung besteht bei aktivierter Debug Layer in Kombination mit D3D-Runtime-Versionen älter als 716, dort wird die Funktion nicht unterstützt.
Recreate At GPUVA vereinfacht den Umgang mit GPU-Puffern, die virtuelle Adressen enthalten. Bisher musste PIX die Werte virtueller GPU-Adressen zwischen Capture und Replay manuell anpassen, was als Fix-up-Lösung umgesetzt war. Mit der neuen Funktion ersetzt PIX dieses Verfahren durch eine direktere Capture- und Replay-Verarbeitung. Das Vorgehen verbessert die Korrektheit und reduziert Nichtdeterminismus, der zuvor aus den nachträglichen Adressanpassungen entstehen konnte. Auch diese Option ist im Auslieferungszustand abgeschaltet. PIX reiht sich damit in die wachsende Riege spezialisierter Debugging-Tools für Spieleentwickler ein.
Tight Alignment und Anbindung an die Agility SDK 1.716.0-preview
Die PIX-Version flankiert die am selben Tag veröffentlichte DirectX 12 Agility SDK 1.716.0-preview, deren D3D12SDKVersion 716 lautet. Mit der SDK-Vorschau führt Microsoft Tight Alignment ein, das engere Ausrichtungsanforderungen für Ressourcen erlaubt. Bei der Einführung von Placed Resources in DirectX 12 wurden die Alignment-Beschränkungen bewusst am kleinsten gemeinsamen Nenner der Hardware ausgerichtet. Tight Alignment wird über das neue Erstellungsflag D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT angefordert. Platzierte Puffer lassen sich damit auf bis zu 8 Byte eng ausrichten, während die Beschränkung für Committed Buffers auf 4 KiB gesenkt wurde.
Damit lassen sich zahlreiche sehr kleine Ressourcen ablegen, ohne entweder Speicher zu verschenken oder ohne Werkzeugunterstützung eine große Elternressource manuell zu unterteilen. PIX 2501.30-preview bildet diese SDK-Funktion auf der Werkzeugseite ab, sodass Aufzeichnungen entsprechender Anwendungen analysiert werden können. Weitere technische Details zu Tight Alignment führt der separate DirectX-Blogbeitrag aus.
