DirectStorage is a feature designed to allow games to take full advantage of high-speed storage such as NVMe SSDs, which can provide small (eg 64kb) data reads of several gigabytes per second with minimal CPU overhead.
Using traditional ReadFile-based IO can saturate the drive, but the CPU overhead increases non-linearly as the size of a single read decreases. Additionally, most games choose to store their assets compressed on disk to reduce installation footprint, and these assets are decompressed on-the-fly when loaded. This CPU overhead becomes more and more expensive as bandwidth increases.
DirectStorage for Windows is an API that allows game developers to take advantage of high-speed NVMe drives to speed up the process of loading game assets,Game consoles such as the Xbox Series X|S solve these problems by offloading this stress to the hardware – leveraging NVMe hardware queues to manage IO and hardware accelerated decompression.
The DirectStorage API already exists on Xbox, and to facilitate porting games between Xbox and Windows, the two APIs are as similar as possible.
DirectStorage only supports read operations,allowableDeveloper’s GuideFind some good introductory information here.
API example
The Samples directory contains sample code that demonstrates how to use the DirectStorage API.
HelloDirectStorage: This basic example provides a quick and easy way to get familiar with the DirectStorage runtime by reading the contents of a file and writing it to a buffer on the GPU using DirectStorage.
BulkLoadDemo: This demonstrates using DirectStorage, GPU decompression, and custom CPU decompression.
GpuDecompressionBenchmark: This example provides a quick way to see the DirectStorage runtime decompression performance by reading the contents of a file, compressing it, and then decompressing it in multiple ways, while measuring bandwidth and CPU usage. Decompression was performed using GPU and CPU for comparison.
#DirectStorage #Homepage #Documentation #Downloads #Accelerating #Game #Loading #NVMe #News Fast Delivery