Microsoft’s latest Agility SDK packs cutting-edge graphics features

Ryan Daws is a senior editor at TechForge Media, with a seasoned background spanning over a decade in tech journalism. His expertise lies in identifying the latest technological trends, dissecting complex topics, and weaving compelling narratives around the most cutting-edge developments. His articles and interviews with leading industry figures have gained him recognition as a key influencer by organisations such as Onalytica. Publications under his stewardship have since gained recognition from leading analyst houses like Forrester for their performance. Find him on X (@gadget_ry) or Mastodon (@gadgetry@techhub.social)


Microsoft has released the latest version of its Agility SDK, packed with innovative graphics features that will be showcased at the Game Developers Conference (GDC) 2024.

The SDK 1.613.0 introduces Work Graphs, Shader Model 6.8, GPU Upload Heaps, and several other enhancements aimed at empowering game developers to create more efficient, flexible, and creative experiences.

Work Graphs: Unlocking the full potential of GPUs

The highlight of the Agility SDK is Work Graphs, a groundbreaking API that unlocks the full potential of GPUs. Unlike traditional models, Work Graphs represents a new paradigm that enables developers to generate and schedule GPU work on the fly, without relying on the host. This innovative approach promises higher performance, lower latency, and greater scalability for tasks such as culling, binning, and chaining of compute work.

Graham Wihlidal, Engineering Fellow – Graphics at Epic Games, commented:

“With the proliferation of GPU-driven rendering techniques – such as Nanite in Unreal Engine 5 – the role of the CPU is trending towards primarily resource management and hazard tracking, with only a fraction of time spent generating GPU commands. Prior to D3D12 Work Graphs, it was difficult to perform fine-grained memory management on the GPU, which meant it was practically impossible to support algorithms with dynamic work expansion. Even simple long chains of sequential compute work could result in a significant synchronisation and memory overhead.

GPU-driven rendering was accomplished by the CPU having to guess what temporary allocations were needed by the GPU, often over-allocating to the worst case, and using previous frame readback for refinement. Any workloads with dynamic expansion either meant issuing worst case dispatches from the CPU, having the GPU early out of unnecessary work, or non-portable techniques were used, like persistent threads.

With Work Graphs, complex pipelines that are highly variable in terms of overall “shape” can now run efficiently on the GPU, with the scheduler taking care of synchronisation and data flow. This is especially important for producer-consumer pipelines, which are very common in rendering algorithms. The programming model also becomes significantly simpler for developers, as complex resource and barrier management code is moved from the application into the Work Graph runtime.

We have been advocating for something like this for a number of years, and it is very exciting to finally see the release of Work Graphs.”

Microsoft has also received endorsements from industry giants AMD and NVIDIA, with both vendors offering day-one driver support for Work Graphs.

Shader Model 6.8: Unleashing shader power

Complementing Work Graphs is Shader Model 6.8, which introduces a suite of new features for shader developers. Among the highlights are Start Vertex/Instance Location, Wave Size Range, and Expanded Comparison Sampling:

  • Start Vertex/Instance Location allows shaders to examine the parameters provided in the invoking Draw*Instanced() API call, enabling more efficient address calculations.
  • Wave Size Range empowers developers to specify their preferred wave size in shaders, reducing the need for multiple entry points and enabling drivers to select suitable wave sizes.
  • Expanded Comparison Sampling provides new options for evaluating nearby pixels in shaders, enabling better cross-platform shader creation.

GPU Upload Heaps: Accelerating data transfers

GPU Upload Heaps introduces a fast and convenient way to copy data from the CPU to the GPU, bypassing the traditional PCI bus bottleneck. By leveraging the resizable BAR (Base Address Register) on modern GPUs, CPU-to-GPU data transfers can be achieved with lower latency.

Initially released as a developer preview, GPU Upload Heaps is now available in the retail release for any application targeting Windows 11 Insider Preview Build 26080 or later.

Additional enhancements

The Agility SDK also includes improvements to ExecuteIndirect, where root constants in a root signature can now act as incrementing constants per command in an ExecuteIndirect() call. Furthermore, Generic Programs in State Objects extends the way shaders are defined for Work Graphs and raytracing pipelines to support pipelines based on vertex shaders, mesh shaders, and compute shaders.

As always, Microsoft’s PIX tool has day-one support for all the new D3D12 features introduced in the Agility SDK, ensuring developers have the necessary tools to leverage these advancements effectively.

With the Agility SDK, Microsoft aims to empower game developers to push the boundaries of graphics performance and creativity.

See also: Linux Kernel closes in on 10M git objects

Looking to revamp your digital transformation strategy? Learn more about Digital Transformation Week taking place in Amsterdam, California, and London. The comprehensive event is co-located with AI & Big Data Expo and Cyber Security & Cloud Expo.

Explore other upcoming enterprise technology events and webinars powered by TechForge here.

Tags: , , , , , , , , , , , , , , ,

View Comments
Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *