Microsoft announced its new Agility SDK 1.710.0-preview, allowing developers access to two new features. One is the GPU Upload Heaps and the other is Non-normalized Sampling.
While GPU Upload Heaps deals with GPU VRAM access by the CPU, the Non-normalized Sampling provides a new sampler flag “to create a sampler that interprets sampling coordinates as absolute“.
GPU Upload Heaps is perhaps one of the most exciting features of this Agility SDK because it changes the way how a CPU should access the GPU VRAM. Traditionally and historically, the CPU could not access GPU’s VRAM at all.
This forced the programs to copy a large amount of data via the PCI Bus. However, with the introduction of the Nvidia Resizable Bar and AMD Smart Access Memory, the data channel between PCI Express and the CPU expands to allow the CPU to utilize full bandwidth.
As most modern GPUs feature VRAM resizable base address register, this allows Windows to take control of the GPU VRAM directly as the heap memory access is exposed by D3D. With the GPU Upload Heaps, this will now let the CPU and GPU directly access all the VRAM simultaneously making them independent of copying data from the CPU to GPU repeatedly.
This can result in latency improvements in DX12 games and will also decrease the system RAM usage.
The feature is out for developers to experiment with and therefore, it will take some time before we can finally see it in action. As for the driver support, Agility SDK is compatible with Intel’s ARC & Iris Xe Graphics Driver 31.0.101.4255 and Nvidia’s latest Game Ready and Studio Drivers 531.41.
For AMD GPU owners, the developers who are interested in early access should contact their AMD alliance manager.