
As a part of this week’s Microsoft Ignite builders convention, Microsoft’s DirectX workforce has revealed a couple of weblog posts providing updates on the state of assorted recreation development-related tasks. The largest and most attention-grabbing of those is an replace on DirectStorage, Microsoft’s API for enabling quicker recreation asset loading. In brief, the long-awaited 1.1 replace, which provides assist for GPU asset decompression, is lastly on its means, with Microsoft meaning to launch the API to builders by the tip of this yr.
As a fast refresher, DirectStorage is Microsoft’s next-generation recreation asset loading API, and is designed to benefit from the trendy capabilities of each GPUs and storage {hardware} to permit for recreation property to be extra effectively transferred on to GPU. On the I/O aspect of issues, DirectStorage affords new batched I/O operations which are designed to chop down on the variety of particular person I/O operations, lowering the general I/O overhead. However extra much more notable than that, DirectStorage additionally allows (or quite, will allow) GPU asset decompression, permitting for contemporary compressed property to bypass the CPU and be decompressed on the GPU as a substitute.
The importance of DirectStorage is that Microsoft desires PCs (and console) to have the ability to higher leverage the low random entry instances and excessive switch charges of contemporary SSDs, enabling video games to rapidly stream in new property quite than having to pre-load all the pieces or struggling noticeably sluggish asset loading, as will be the case right this moment. Below present recreation improvement paradigms, the CPU generally is a bottlenecking think about scaling up I/O charges to fulfill what SSDs can present, as there are important CPU prices each to monitoring so many I/O operations and for decompressing recreation property earlier than passing them on to the GPU. DirectStorage, in flip, is designed to reduce each of those hundreds, and in the end, attempt to take away the CPU as a lot as attainable from recreation asset streaming.
DirectStorage know-how was already applied on Microsoft/s Xbox Collection X/S consoles for his or her launch in 2020, so newer efforts have been round porting DirectStorage to Home windows and accounting for the non-homogenous {hardware} ecosystem. Earlier this yr Microsoft rolled out DirectStorage 1.0, which applied the I/O batching enhancements, however not the GPU decompression capabilities. That is the place DirectStorage 1.1 will are available, as it should lastly be enabling the second (and most vital) facet of DirectStorage for PCs.
By permitting GPUs to do recreation asset decompression, that whole course of is offloaded from the CPU. This not solely frees the CPU up for different duties, nevertheless it removes a doubtlessly crucial bottleneck in recreation asset streaming. As a result of fashionable SSDs are so quick – on the order of tons of of 1000’s of IOPS and information switch charges hitting 7GB/second – the CPU is the weakest hyperlink between speedy SSDs and massively parallel GPUs. So below DirectStorage, the CPU is getting lower out nearly completely.
So far as the efficiency advantages of DirectStorage 1.1 go, the total positive aspects will rely on each the {hardware} used and the way a lot information a recreation or different utility is trying to push. Video games transferring giant quantities of information on very quick techniques are anticipated to see the biggest positive aspects from the total DirectStorage 1.1 stack, although even lighter video games can profit from the quick entry instances to NVMe SSDs.
As a part of Microsoft’s weblog put up, the corporate posted a screenshot from their Bulk Loading pattern program for recreation builders, which affords a easy demonstration and benchmark of DirectStorage 1.1 in motion. In Microsoft’s case, they had been capable of load 5.65GB of property in 0.8 seconds utilizing GPU decompression on an undisclosed PC, versus 2.36 seconds on the identical system with CPU decompression – whereas maxing out the load on the CPU within the course of. Like most SDK pattern applications, it is a easy take a look at case targeted on only one characteristic, so the real-world positive aspects aren’t prone to be fairly so excessive, nevertheless it underscores the efficiency advantages of transferring asset decompression from the CPU to the GPU when you may have a considerable amount of asset information.
Transferring below the hood, DirectStorage GPU decompression is being enabled by way of the introduction GDeflate, a basic objective compression algorithm that was originally developed by NVIDIA. GDeflate is a GPU-optimized variation on Deflate, which has been designed to raised mesh with the massively parallel (and not-very-serial) nature of GPUs.
DirectStorage, in flip, will likely be implementing GDeflate assist in two completely different manners. The primary (and most popular) method is to move issues off to the GPU drivers and have the GPU vendor care for it as they see match. This can enable {hardware} distributors optimize for the precise {hardware}/structure used, and leverage any particular {hardware} processing blocks in the event that they’re out there. All three corporations are desperate to get the present on the highway, and it is probably some (if not all) of them can have DirectStorage 1.1-capable drivers prepared earlier than the API even ships to recreation builders.
Failing that, Microsoft can be offering a generic (however optimized) DirectCompute GDeflate decompressor, which will be run on any DirectX12 Shader Mannequin 6.0-compliant GPU. Which signifies that, in some type or one other, GDeflate will likely be out there with nearly any PC GPU made within the final 10 years – although newer GPUs are anticipated to supply significantly better efficiency.
In any other case, the one issues that can finally be wanted to benefit from GPU decompression – and DirectStorage 1.1 on the whole – will likely be Home windows 10 1909 (or later) or Home windows 11, in addition to a quick storage system. Technically, DirectStorage works in opposition to any storage system, together with SATA SSDs, however it’s explicitly being optimized for (and ship one of the best outcomes on) techniques utilizing NVMe SSDs.
Do notice, nonetheless, that will probably be as much as particular person video games to implement DirectStorage to see the advantages of the API. Meaning not solely utilizing the mandatory API hooks, but additionally delivery video games with property packed utilizing the brand new GDeflate algorithm. The huge backwards compatibility of GDeflate signifies that recreation devs can basically hit the bottom operating right here on DX12 video games – something value operating a brand new recreation on goes to assist DirectStorage and GDeflate – however the truth that it includes recreation property signifies that full DirectStorage 1.1 assist can’t be trivially added to current video games. Builders would want to redistribute (or in any other case recompress) recreation property for GDeflate, which is definitely do-able, however would require players to re-download a big a part of a recreation. So players ought to plan on seeing DirectStorage 1.1 arrive as a characteristic in future video games, quite than backported into current video games.
Lastly, as for Microsoft’s viewers at hand (builders), this week’s announcement from Microsoft is supposed to prod them into preparing for the up to date API forward of its launch later this yr. Microsoft isn’t releasing the API documentation or instruments at the moment, however they’re encouraging builders to get began with DirectStorage 1.0, in order that they will take the following step and add GPU decompression as soon as 1.1 is out there later this yr.