ExecuteIndirect Command in DirectX 12 Brings Improved Performance and Low CPU Usage
Gabriel Roşu / 2 years ago
Microsoft has revealed a new indirect dispatching draw solution that can be used by all DirectX 12 compatible hardware, completely replacing the DrawIndirect and DispatchIndirect commands. The company says that this solution will bring ‘major performance improvements to the already incredible performance that DX12 can achieve’.
ExecuteIndirect is said to perform multiple draws with a single API call, and gives the ability to both the CPU and the GPU to control draw calls, as well as change bindings between draw calls. Principal Development Lead for Direct3D and DXGI at Microsoft, Max McMullen, has demoed the new feature at GDC with the help of Intel’s Asteroid benchmark.
McMullen first demoed the DX11 version, where the benchmark results came in at only 29 FPS. Switching to DX12 however, an outstanding 75 FPS result was achieved, having a 4 to 6 FPS increase when bindless mode was added to the equation. For those unaware, bindless mode is a DX12 feature which can pre-bake all textures used in the application. Microsoft states that the feature is “a major efficiency improvement in how the GPU is running”.
Lastly, when switching to ExecuteIndirect, an epic 90 FPS result was achieved in the benchmark. This is where we see a significant reduction of CPU usage as well compared to the previous two DX12 benchmarks, making the feature one of the best solutions for delivering high-quality graphics at the lowest possible hardware usage. Now it remains to be seen if developers can take full advantage of Microsoft’s new feature.
Thank you DSOGaming for providing us with this information