Das DirectX-Team hat DirectStorage 1.3 am 1. Juli 2025 veröffentlicht. Die Version steht als NuGet-Paket in der Fassung 1.3.0 bereit und erweitert die Programmierschnittstelle für das Asset-Streaming auf Windows und Xbox um die neue EnqueueRequests-API. Diese gibt Entwicklern feinere Kontrolle darüber, wie Datenanfragen abgesetzt und mit Grafik-Workloads abgestimmt werden.
EnqueueRequests bündelt Anfragen und synchronisiert über D3D12-Fences
Mit EnqueueRequests lassen sich mehrere Datenanfragen in einem einzigen Aufruf bündeln und über einen D3D12-Fence synchronisieren. Dazu führt die API neue Flags ein, mit denen DirectStorage auf einen Fence wartet, bevor GPU-Arbeit oder ein Datenzugriff erfolgt. So lässt sich das Laden von Assets präziser an den Ablauf der Grafik-Pipeline koppeln, statt einzelne Anfragen unabhängig voneinander zu verwalten. Die Bündelung mehrerer Requests in einem Aufruf reduziert zugleich den Verwaltungsaufwand auf der CPU-Seite.
Für die Abstimmung zwischen Datentransfer und Rendering ist die Fence-Synchronisation zentral. Bislang mussten Entwickler die zeitliche Reihenfolge zwischen geladenen Daten und deren Verwendung in Shadern oder Kopiervorgängen weitgehend selbst koordinieren. Wie eng moderne Speicher- und Rendering-Techniken inzwischen verzahnt sind, zeigt sich gerade an solchen Schnittstellen. Die direkte Anbindung an D3D12-Fences verlagert diese Synchronisation in die DirectStorage-Laufzeit und ermöglicht es, Datenanfragen gezielt an Grafik-Workloads zu koppeln.
Neuer Zieltyp für zusammenhängende Subresources und MIP-Texturen
Ergänzend führt die Version den Zieltyp DSTORAGE_DESTINATION_MULTIPLE_SUBRESOURCES_RANGE ein. Er erlaubt das Kopieren eines Bereichs zusammenhängender Subresources in eine D3D12-Ressource und eignet sich damit besonders für das Beschreiben einzelner oder ganzer Bereiche von Ziel-MIPs in Texturen. In Kombination mit EnqueueRequests senkt der Zieltyp laut DirectX-Team den CPU-Overhead und verbessert die Performance beim Laden von Assets. Ein neues Beispiel im DirectStorage-Repository auf GitHub zeigt den Einsatz von EnqueueRequests beim Befüllen von MIP-Texturen.
Daneben enthält die Aktualisierung mehrere kleinere Korrekturen. Die integrierte CPU-Dekompression bricht nun bei ungültigen oder beschädigten GDeflate-Daten ab. Ein Fehler bei DSTORAGE_DESTINATION_TILES für Ressourcen mit abweichender Breite und Höhe wurde behoben. Zudem wurde die MSBuild-Eigenschaft in DirectStorageNativeBuildDirectory umbenannt, um Kollisionen zwischen Paketen zu vermeiden.