Microsoft releases DirectStorage 1.2: Optimize HDD performance and fix bugs

In March of 2021, Microsoft officially launched the DirectStorage API, enabling PC NVMe SSDs to bypass CPUs and memory, directly transmitting data to the graphics memory, significantly reducing game loading times and resolving texture loading issues. Theoretically, games employing this technology can achieve seamless scene integration. Last October, Microsoft updated to DirectStorage 1.1, introducing “asset decompression” functionality, and supporting GPU resource decompression.

Microsoft has now formally released DirectStorage 1.2, incorporating new features and implementing various fixes.

Originally, DirectStorage opened files in non-buffered mode, circumventing unnecessary duplication and expediting data transfer to the GPU. However, developers desired compatibility between HDDs and SSDs using the same code, and since HDDs require buffered I/O to mask longer seek times, Microsoft included compulsory buffered I/O in the latest version, optimizing HDD usage experiences.

DirectStorage currently selects decompression paths for built-in compression formats based on GPU capabilities, occasionally opting for CPU-based fallback paths. Developers have indicated the need to discern which decompression path is in use to establish default texture resolutions accordingly. To accommodate these requirements, Microsoft has added a new API query to DirectStorage 1.2, revealing the runtime-selected path.

Microsoft has rectified various bugs in DirectStorage 1.2, including errors related to textures and scheduling. Moreover, through DirectStorage 1.2, Microsoft has further augmented performance, such as relocating GPU decompressed replicas to the GPU compute queue, consequently expediting the compute queue’s processing speed.