Microsoft.Direct3D.DirectStorage 1.2.2

The ID prefix of this package has been reserved for one of the owners of this package by Prefix Reserved
dotnet add package Microsoft.Direct3D.DirectStorage --version 1.2.2
NuGet\Install-Package Microsoft.Direct3D.DirectStorage -Version 1.2.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Microsoft.Direct3D.DirectStorage" Version="1.2.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Microsoft.Direct3D.DirectStorage --version 1.2.2
#r "nuget: Microsoft.Direct3D.DirectStorage, 1.2.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Microsoft.Direct3D.DirectStorage as a Cake Addin
#addin nuget:?package=Microsoft.Direct3D.DirectStorage&version=1.2.2

// Install Microsoft.Direct3D.DirectStorage as a Cake Tool
#tool nuget:?package=Microsoft.Direct3D.DirectStorage&version=1.2.2

DirectStorage SDK

This package contains the DirectStorage SDK, including the redistributable binaries.

For help getting started and other information for DirectStorage, please see:

The included licenses apply to the following files:

  • LICENSE.txt : applies to all files under native/bin/
  • LICENSE-CODE.txt : applies to all files under native/include/



Bug Fixes

  • Fix race condition that would, in some rare circumstances, cause DirectStorage to stop processing requests when the CPU is under high load.

  • Change DirectStorage worker thread to wakeup periodically and process requests to catch rare cases where processing has stopped.

Breaking Changes

  • Remove support for 32-bit ARM.


  • Ensure that the destination resource is left in the D3D12_RESOURCE_STATE_COMMON state after the DirectStorage request has completed.


New Features

  • Add support for enabling buffered file IO for use on HDDs that may benefit from OS file caching behaviors.
  • Add IDStorageQueue2::GetCompressionSupport API to indicate what path the DirectStorage runtime will take when decompressing a supported GPU decompression format.
  • Update dstorage.h and dstorageerr.h to be covered by the MIT License.
  • Add Microsoft.Direct3D.DirectStorage.winmd, to ease generation of non-C++ bindings to the API.

Bug Fixes

  • Add "Reserved1" field to DSTORAGE_REQUEST_OPTIONS. This makes the in-memory layout of the structure more explicit, but doesn't actually change the layout from previous versions.
  • Fix scheduling issue that manifested when transferring uncompressed data from memory to buffers

Performance improvements

  • Move the copy after GPU decompression onto the compute queue for GPUs where this is faster.


  • Fix region size calculation for texture destinations with DepthOrArraySize > 1 which caused bogus DirectStorage Error/Warning message DSTORAGE_MESSAGE_ID_SMALLER_UNCOMPRESSED_SIZE


New Features

  • Add support for GPU decompression and GDeflate:
    • New interface: IDStorageCustomCompressionQueue1
    • New function: DStorageCreateCompressionCodec
    • New interface: IDStorageCompressionCodec
  • New interface: IDStorageQueue1:
    • New method EnqueueSetEvent() that allows a Win32 event to be signaled directly by DirectStorage.
  • Add more warnings for invalid queue capacity, and invalid request fields.

Bug Fixes

  • Fix hang when processing memory sourced requests that exceed in total the total size of the available staging buffer size.
  • Fix running on Windows Server 2016.
  • Add note in dstorage.h about how IDStorageFile::Close() doesn't affect the reference count.
  • Fail enqueued requests that require a D3D device on queues that were created without one.
  • For requests to GPU destinations (e.g. buffers, subresources), support requests that have uncompressed size greater than the destination size.

Breaking Changes

1.1.0 is source compatible with 1.0.2, but recompilation will be required so that the DirectStorage binaries match the header:


This is a trade-off between having a simpler API and binary compatibility. As DirectStorage is now more feature complete with GPU decompression, binary compatibility will become a higher priority.

Known Issues

  • On older versions of D3D12, the debug layer may generate incorrect warnings that there are simultaneous writes to the input staging buffer from the copy queue that brings the data into the buffer and the compute queue that performs GPU decompression.


Breaking Changes

  • Update NuGet package layout to be consistent with other native NuGet packages.

New Features

  • Add DSTORAGE_CUSTOM_DECOMPRESSION_FLAGS; these can be used to determine if the destination for a custom decompression requests is in write-combined memory.

Bug Fixes

  • Fix building on x86.
  • Improve documentation.

Performance Improvements

  • Improve Windows 10 performance.


First release.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.2 2,541 11/15/2023
1.2.1 15,697 5/16/2023
1.2.0 7,930 4/18/2023
1.1.1 2,180 12/7/2022
1.1.0 6,208 11/7/2022
1.0.2 77,828 5/24/2022
1.0.0 6,151 3/14/2022