AMD shows off DX12-related rendering advances that make game engines more efficient and less dependent on the CPU -- demo shows a 64% improvement

 Radeon GPUs.
Radeon GPUs.

At GDC 2024, AMD announced it's adding draw calls and mesh nodes as part of Work Graphs — moving these features from the CPU to the GPU, with the aim of improving gaming performance. AMD showed off benchmark numbers of Work Graphs with mesh shaders running on an RX 7900 XTX, revealing a 64% performance improvement compared to normal Work Graphs without mesh shaders applied.

Before we dive into these features, what exactly are Work Graphs? They are a new GPU-driven rendering design built into the Direct3D 12 API that enables the GPU to apply work to itself. In Work Graph-enabled applications, this means that certain parts of the 3D rendering pipeline can be controlled and rendered on the GPU, independently of the CPU, reducing potential bottlenecks and improving efficiency and performance.

Work Graphs can't run everything on the GPU (yet), but the feature can already execute dispatch calls, shaders, and node executions, all of which are traditionally controlled via the CPU.

According to AMD's GPU open blog, Mesh Nodes are a new extension of Work Graphs that introduce a new kind of leaf node, which drives a mesh shader and allows a normal graphics PSO to be referenced from the work graph. Mesh Nodes allow a work graph to feed directly into a Mesh Shader, "turning the work graph itself into an amplification shader on steroids."

AMD Work Groups Benchmark
AMD Work Groups Benchmark

In layman's terms, integrating mesh shaders with Work Graphs have enabled AMD to make mesh shaders substantially more efficient for the reasons discussed above. The more 3D rendering "features" get ported to Work Graphs, the more efficient the 3D rendering pipeline becomes.

"'Mesh nodes' really close the loop in terms of providing an end-to-end replacement for Execute Indirect and moving the GPU programming model forward," writes AMD architect Matthäus Chajdas. "Everything can move into a single graph and execute in a single dispatch, making it very easy to compose large applications from small bits and pieces. Moreover, problems like PSO switching, empty dispatches, and buffer memory management just go away, making full GPU-driven pipelines accessible to many more applications and use cases than before."

AMD also introduced draw calls as a function that can be used with Work Graphs. Draw calls in Work Graphs can be processed asynchronously to boost rendering efficiency.

Aside from the benchmark AMD provided, AMD also showed off a demo of a 3D engine running live with Work Graphs combined with the new mesh shading and draw call functionality AMD announced.

These new features continue to expand the functionality of Work Graphs, enabling the GPU to do more rendering tasks all by itself (independently from the CPU). In the future, we could see an entire video game being rendered entirely on the GPU, aside from game logic.