Das Performance-Tuning-Werkzeug PIX on Windows hat am 14. März 2022 mit der Version 2203.07 Unterstützung für die DirectStorage-API nachgereicht. Das PIX-on-Windows-Team teilt mit, dass die Tooling-Anbindung schon zum Start der API bereitsteht. Entwickler können ihre Lade-Pipelines damit vom ersten Tag an unter die Lupe nehmen.
DirectStorage ist eine Programmierschnittstelle, die Spieldaten effizienter von schnellen NVMe-Speichern in den Arbeitsspeicher und auf die GPU schaufelt. Ursprünglich kommt die Schnittstelle aus der Architektur der Xbox Series und wurde für Windows portiert. Sie organisiert den Datentransfer über asynchrone Warteschlangen, und genau solche Vorgänge sind ohne passendes Werkzeug kaum nachvollziehbar. Wie die DirectStorage-Anbindung in der Praxis aussieht, zeigt das aktuelle Release von PIX.
Warteschlangen landen als eigene Spuren im Timing-Capture
Erfasst wird die DirectStorage-Aktivität über einen Timing-Capture. Die Funktion liegt in den Capture-Einstellungen im Bereich File IO und lässt sich dort über die Option File accesses einschalten. Nach der Aufzeichnung blendet PIX zusätzliche Spuren in der Zeitleiste ein. Jede Spur steht für eine DirectStorage-Warteschlange, die die erfasste Anwendung angelegt hat. Innerhalb der Spuren werden Enqueue-Anfragen, Signals und Submits jeder Warteschlange sichtbar, dazu kommen Angaben zu Batch-Größen und Ausführungszeiten.
Wo der Ladecode hängt
Zur Warteschlangen-Ansicht liefert PIX detaillierte Thread-Ansichten des Prozesses. Damit lassen sich Stalls und Engpaesse im Ladecode aufspüren, die sonst nur schwer zu finden sind. Das Team raet, jede Warteschlange zu benennen, weil sich die Zuordnung und Nachverfolgung während der Entwicklung so deutlich leichter erledigen lässt. Weitere Hinweise zur Implementierung gibt es auf der verlinkten DirectStorage-Landingpage. Rückmeldungen nimmt das Team über Discord und das integrierte Feedback-Werkzeug entgegen.