PIX on Windows 2303.02: Programmatische Timing Captures und erweiterter WinPixEventRuntime

Das PIX-Team von Microsoft hat am 2. März 2023 die Version PIX on Windows 2303.02 veröffentlicht. Die wichtigste Neuerung der Performance- und Debugging-Suite für Direct3D-12-Titel: Timing Captures lassen sich nun programmatisch auslösen. Bisher startete diese Aufzeichnungsart nur über die grafische Oberfläche von PIX, während programmatische Aufrufe den GPU-Captures vorbehalten blieben. Dazu kommt eine neue Fassung der WinPixEventRuntime, die über NuGet bezogen werden kann und zusätzliche Schnittstellen zur Speicherinstrumentierung mitbringt. Wer regelmäßig mit der Suite arbeitet, kennt PIX on Windows als festen Bestandteil des Direct3D-Werkzeugkastens.

Timing Captures jetzt aus dem Code heraus

Austin Kinross, Engineering Manager des PIX-Teams, erklärt, dass sich Timing Captures jetzt über die bekannten Funktionen PIXBeginCapture und PIXEndCapture anstoßen lassen. Eine Aufzeichnung startet mit dem Flag PIX_CAPTURE_TIMING und endet beim korrespondierenden PIXEndCapture. Entwickler können damit einzelne Szenen oder Lastsituationen automatisiert protokollieren, ohne von Hand in der Benutzeroberfläche eingreifen zu müssen.

Ganz ohne Vorbereitung geht das nicht. Die zu analysierende Anwendung muss mit erhöhten Administratorrechten laufen, und die Bibliothek WinPixTimingCapturer.dll aus dem PIX-Installationsverzeichnis muss geladen werden. Für diesen Schritt liefert das Team die Hilfsfunktion PIXLoadLatestWinPixTimingCapturerLibrary mit. Sie findet die DLL in der jeweils neuesten installierten PIX-Version und bindet sie ein, womit die manuelle Pfadauflösung über mehrere Installationsstände hinweg entfällt.

Speicheranalyse in der neuen WinPixEventRuntime

Die mit 2303.02 ausgelieferte WinPixEventRuntime bringt die Schnittstellen PIXRecordMemoryAllocationEvent und PIXRecordMemoryFreeEvent dazu. Über diese APIs lassen sich eigene Speicherallokatoren instrumentieren, sodass benutzerdefinierte Allokationen in PIX genauso erscheinen wie die integrierten Systemspeicherdaten. Die Timing-Captures erfassen außerdem Residency-Events für D3D12-Ressourcen und -Heaps. Hinzu kommt eine Analyse von C++-Quellcode mit Blick auf Speicherallokationen, samt Auswertung der Padding-Effizienz pro Datentyp.

Bei den GPU-Captures bringt die Version vollständiges RayGen-Shader-Debugging für DXR 1.0 sowie Shader-Access-Tracking in den DXR-Pipeline-Ansichten. Dazu gibt es neue Hersteller-Plugins: von AMD für die Radeon-RX-7900-Serie, von NVIDIA für die 4000er-Reihe und von Qualcomm für den Snapdragon 8cx Gen3. Weitere Funktionen sind Event-Coloring in GPU-Captures, ein Diffing von Event-Listen zwischen Aufzeichnungen und ein erweiterter System Monitor mit aktuellen PresentMon-Zählern. Zu finden ist die Version im Download-Bereich der PIX-Webseite.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein