DirectX Developer Blog:
Today we’re releasing DirectStorage 1.3, this update includes a new API and several refinements based on developer feedback. The package is now available for download via NuGet. Read on to learn about what’s new with DirectStorage 1.3.
EnqueueRequests – Enhanced I/O Scheduling
DirectStorage 1.3 adds a new API called EnqueueRequests. This API gives developers more flexibility and control over how data requests are issued and synchronized with graphics work. EnqueueRequests allows developers to batch multiple requests in a single call and synchronize them using a D3D12 fence to better coordinate DirectStorage with the D3D12 rendering pipeline. For example, you can ensure that texture load requests and UpdateTileMappings occur in the right order, avoiding GPU work kicking off too early.The API provides new flags to fine-tune behavior, enabling DirectStorage to wait on a fence before doing any GPU work or before accessing the source data. In short, EnqueueRequests lets titles schedule I/O and ensure critical loading paths run predictably while maintaining performance.
New DSTORAGE_DESTINATION type
DirectStorage 1.3 introduces DSTORAGE_DESTINATION_MULTIPLE_SUBRESOURCES_RANGE, a new destination type that enables copying a range of contiguous subresources into a D3D12 resource. This is particularly useful when writing to an individual or range of target MIPS in a texture, allowing developers to write subresources that start and end as needed. This change, in combination with the new EnqueueRequests API, ultimately reduces CPU overhead and improves asset loading performance.Bug Fixes and Breaking Changes
DirectStorage 1.3 also contains a handful of fixes and changes based on developer reports. This release includes the following:- Fix built-in CPU decompression to fail requests that contain invalid or corrupted GDeflate compressed data. GPU decompression does not report these errors this way because the driver will TDR when it encounters corrupted compressed data causing the DirectStorage request to fail.
- Fix DSTORAGE_DESTINATION_TILES for resources with different width and height.
- Renamed MSBuild property NativeBuildDirectory to DirectStorageNativeBuildDirectory to avoid collisions with other NuGet packages.
- Updated DirectStorageNativeBuildDirectory to include a trailing slash to follow MSBuild conventions for path properties.
New Sample & Getting Started
We added a new sample on the DirectStorage GitHub that shows you how to use EnqueueRequests in combination with DSTORAGE_DESTINATION_MULTIPLE_SUBRESOURCES_RANGE to populate texture MIPS in a texture. This sample highlights effective patterns for coordinating DirectStorage reads with GPU work (e.g., streaming textures with tiled resources) making it easier to jumpstart your DirectStorage 1.3 integration.DirectStorage 1.3 is available now to download via NuGet and we’re interested to see how you use these updates in your titles. We also want to hear your feedback on DirectStorage, feel free to reach out over email at askwindstorage@microsoft.com or use the #directstorage channel on the DirectX Discord. We look forward to seeing how the new capabilities in DirectStorage 1.3 enhance your titles!
Source:

DirectStorage 1.3 is now available - DirectX Developer Blog
DirectStorage 1.3 includes a new API and updates based on developer feedback. Learn what’s new with DirectStorage 1.3 and download via NuGet.
