DirectStorage and game loading: how NVMe changes asset streaming
DirectStorage is a Microsoft API that allows games to read compressed assets from fast NVMe drives with minimal CPU involvement, offloading decompression to the GPU. Traditional Windows file caching consumes CPU for each small read and struggles with large asset files. NVMe drives, with their high bandwidth and parallel queues, make the API's approach effective for reducing load times.
Windows file caching and the I/O path
By default, Windows caches file data read from disks in system memory, so read operations often come from the system file cache instead of the physical disk, as explained in Microsoft's file caching documentation. The cache manager writes data back to disk at intervals, and applications can disable this buffering by opening a file with FILE_FLAG_NO_BUFFERING, which makes read and write operations go directly to the disk.
File caching works well for small blocks because repeated reads stay in memory, but for large contiguous reads the cache adds little benefit and may even increase overhead. Games also compress assets to reduce install size, so the CPU must decompress data during loading, which becomes more expensive as storage bandwidth increases. Disabling the cache is one option, but that alone does not address decompression or the per-read CPU cost.
DirectStorage and GPU decompression
The Microsoft DirectStorage project describes an API that lets games use high-speed NVMe drives, which can deliver multiple gigabytes per second of small reads with minimal CPU overhead, supports only read operations, and includes a GPU decompression codec called GDeflate, with the API modeled after the Xbox version to ease porting.
Traditional ReadFile-based I/O can also saturate a drive, but CPU overhead grows non-linearly as the size of individual reads decreases. DirectStorage uses the NVMe hardware queue and hardware accelerated decompression to move work away from the CPU, similar to how console hardware handles asset streaming. The API includes sample code that demonstrates reading files directly into GPU buffers and measuring decompression bandwidth on the CPU versus the GPU.
NVMe interface fundamentals
According to SNIA's explanation of NVMe, NVMe is the most common host controller interface for PCIe-based devices, architected for solid state drives, and its base specification supports up to 64k I/O queues with 64k outstanding commands per queue, allowing parallel access that scales with multi-core CPUs.
The NVM Express organization defines NVMe as an open set of standards designed for high bandwidth and low latency storage access across computing environments from mobile to data center, and it is widely considered the industry standard for PCIe SSDs. The interface was built from the ground up for non-volatile memory, unlike SATA, which was derived from hard disk drive technology.
Consoles and the PC ecosystem
The PlayStation M.2 SSD support page specifies that a compatible M.2 SSD for the PS5 must use the PCI-Express Gen4x4 interface, have a sequential read speed of 5500MB/s or faster, and include a heat dissipation mechanism such as a heatsink or heat transfer sheet. These requirements reflect the need for sustained bandwidth to match the console's internal storage.
A Solidigm article on the SATA to NVMe transition notes that NVMe PCIe Gen4 drives can reach read bandwidth of 7GB/s, equivalent to up to 12 SATA SSDs, while SATA interface speeds cap at 6Gb/s. This performance gap is why modern games and consoles rely on NVMe for asset streaming.
The speed of asset streaming is only one part of a gaming system's overall performance; the ability to render the streamed data depends on the graphics cards that process the frames, so the storage interface and GPU must work together.
| Requirement | Specification |
|---|---|
| Interface | PCI-Express Gen4x4 supported M.2 NVMe SSD (Key M) |
| Storage space | 250 GB to 8 TB |
| Form factor | 2230, 2242, 2260, 2280, 22110 |
| Sequential read speed | 5,500 MB/s or faster recommended |
| Cooling | Effective heat dissipation with heatsink or heat transfer sheet |
Frequently asked questions
Does DirectStorage work with SATA SSDs?
DirectStorage is intended for high-speed storage such as NVMe drives, but the API itself is a read-only interface that can work with any storage device. Its performance benefits are most noticeable on NVMe because of the low CPU overhead and high bandwidth.
Why does DirectStorage offload decompression to the GPU?
Game assets are often stored compressed to reduce install size, and decompressing them on the CPU consumes processing power. By using the GPU for decompression, the CPU is free for other tasks, which reduces load time spikes and improves overall game responsiveness.
What is the recommended read speed for a PS5 M.2 SSD?
The PlayStation support page recommends a sequential read speed of 5,500 MB/s or faster for an M.2 SSD used with a PS5 console, and it also requires PCIe Gen4x4 support and a heat dissipation mechanism.

