Das PIX-Team von Microsoft hat am 24. Juli 2018 die Version PIX 1807.19 veröffentlicht und damit einen neuen Shader Table Viewer in die Pipeline View des Grafik-Analysewerkzeugs integriert. Das Werkzeug richtet sich an Entwickler, die mit DirectX Raytracing (DXR) arbeiten, und gibt Einblick in den Aufbau einer Raytracing-Shader-Table. Verfasst wurde die Ankündigung von Damyan Pepper, Dev Lead im PIX-Team.
Was der Shader Table Viewer leistet
Der Shader Table Viewer visualisiert, wie die GPU die Bytes einer Shader-Table interpretiert. Für jeden Shader-Record stellt das Werkzeug den zugehörigen Shader Export, die Local Root Signature sowie die Local Root Arguments dar. Wo zutreffend, kommen zusätzlich Verknüpfungen zu den entsprechenden Ressourcen hinzu, sodass sich der Bezug zwischen Eintrag und genutzter Ressource direkt nachvollziehen lässt.
Ein Schwerpunkt liegt auf der Fehlersuche. Konfigurationsprobleme in einer Shader-Table, etwa ungültige Local Root Arguments, ungültige Shader Identifier oder eine falsche Zuordnung der Local Root Signature, macht das Werkzeug laut Microsoft sichtbar. PIX weist mit Warnsymbolen auf solche potenziellen Fehler hin. Ergänzend kann der Viewer die rohen Bytes der Shader-Table anzeigen. Von der detaillierten Interpretation aus führen Verknüpfungen zu den entsprechenden Roh-Bytes, womit nachvollziehbar wird, weshalb einzelne Bytes auf eine bestimmte Weise ausgelegt wurden.
DXR-Voraussetzungen und Fehlerbehebungen der Version 1807.19
Die Funktion gehört zur DXR-Unterstützung in PIX und setzt eine entsprechende Raytracing-Umgebung voraus. Für den Einsatz mussten zum Veröffentlichungszeitpunkt die aktuellen Raytracing-Binaries bezogen und die zugehörigen Runtime-Dateien manuell in das PIX-Installationsverzeichnis kopiert werden. Neben dem neuen Viewer behebt die Version mehrere Fehler sowie eine Performance-Regression bei der Anzeige von Texturinhalten.
PIX on Windows ist Microsofts Performance-Tuning- und Debugging-Werkzeug für Direct3D-12-Anwendungen. Die Low-Level-API hatte Microsoft 2014 auf der GDC angekündigt, um den Treiber-Overhead zu reduzieren. Mit dem Shader Table Viewer erhalten Entwickler nun eine Möglichkeit, die für DXR zentrale Datenstruktur der Shader-Table strukturiert zu prüfen, statt deren Inhalt allein anhand des Speicherabbilds beurteilen zu müssen.