Recently, the Microsoft company in its blog presented a program interface DirectStorage from the family of DirectX, designed to significantly accelerate the I / O operations. The technology originates from the Xbox Velocity architecture for the new generation console Xbox Series X, but in the future will appear on a PC running Windows 10. Obviously, the main goal of DirectStorage is to significantly reduce loading time in games and the ability to create huge seamless virtual worlds.
In recent years, the amount of data for computer games has increased dramatically and the principles of downloading them to online and video memory are changing. If before at a time were loaded large pieces of information with a very small number of I / O requests, now among the developers used the approach of dividing the array of data into many small parts with a constant loading of the necessary fragments. This approach is much more efficient in terms of memory management and can provide better quality scenes, although it generates much more I/O requests.
Unfortunately, current storage APIs are not optimized for so many I/O requests. And if we see SSDs constantly evolving in terms of hardware, the software part of the operating system is “stuck” in the past decade. In fact, current APIs are unable to scale to accommodate today’s PCIe NMVs and fully fill the I/O bandwidth.
This is where DirectStorage comes to help. This API is a response to modern requirements for storage systems and I/O pipelines in computer games. DirectStorage will be supported in “some systems” with NVMe drives. Microsoft does not specify, but you will probably need a compatible motherboard and SSD configured to work with DirectStorage.
Existing APIs require that the application manage and process each of the I/O requests one by one. The problem is that the number of these requests increases from hundreds per second for previous generation games to tens of thousands in future projects. Moreover, data packages are often compressed and require time and resources to unpack.
The DirectStorage API is designed to take these nuances into account and maximize performance throughout the entire pipeline from the NVMe-drive to the graphics processor. Its mechanisms do this in several ways: reducing the required computing resources per request, concurrently grouping and processing many parallel I/O requests, and providing more precise control over priorities.
In this way, developers get an extremely efficient way to manage by orders of magnitude more I/O requests than ever before. Ultimately, this minimizes the waiting time to enter the game, and provides players with larger and more detailed virtual worlds with instant content uploads while traveling through them.
With the upcoming release of the Xbox Series X, the DirectStorage experience is already in use by developers. As for the PC and Windows 10, a preliminary version of the DirectStorage API will be released next year. We can assume that the actual implementation will reach the PC not before the end of 2021, or rather from 2022 in some cross-platform games.