Graphics Edge: "Bare metal" API technologies such as Direct3D 12 and Vulkan have given engine programmers new opportunities to create captivating and fast 3D gaming worlds. The job is not done yet, as Microsoft is still trying to innovate by pushing for even more code efficiency in modern (Windows) video games.
Microsoft recently released the latest version of its Agility SDK, introducing new promising features in the game development world. The most outstanding change included in the Agility SDK 1.613.0 is Work Graphs, a "cutting edge" API that provides developers with a way to utilize the full potential of dedicated GPUs.
Work Graphs is not just an upgrade to an existing model, Microsoft explains, but a completely new way to do things with 3D graphics in games. The API enables a more efficient, flexible and creative development environment, giving software engineers the ability to generate and schedule GPU workloads on the fly without relying on the host CPU.
Redmond posted a long, technical explanation about Work Graphs' inner working, providing code examples for shader and application developers. In a traditional development environment, Microsoft explains, many GPU workloads are scheduled in cooperation with the CPU to determine what subsequent work the GPU needs to accomplish.
Thanks to Work Graphs, shader threads already running on a GPU ("producers") can request other work to run ("consumers"). Consumers can become producers too, and the new API gives the GPU the ability to manage computation workloads all by itself without waiting for external inputs by the CPU. Work Graphs captures the "user's algorithmic intent and overall structure," without forcing the programmer to known the specific graphics hardware their code will run on.
Work Graphs can achieve higher performance levels, reduced latency, and greater scalability for several game-related programming tasks, Microsoft says. The technology could potentially give a new lease on life to PC gaming systems equipped with older CPUs, further shifting the performance burden onto the GPUs, which are traditionally much easier to replace and upgrade than processors.
The Agility SDK 1.613.0 also includes additional features for game developers. The Shader Model 6.8 provides a more efficient shader programming environment, while GPU Upload Heaps further increase efficiency of the controversial resizable BAR feature of modern GPUs. Work Graphs support is already available on Nvidia (RTX 30, RTX 40) and AMD GPUs (RX 7000).