There has been much discussion about the benefits of DirectX 12, but now one of the processor manufacturers which Microsoft has partnered with to provide the latest collection of powerful graphics APIs has provided more solid details about two of the major features which will help game developers deliver solid performance for their titles…
Past versions of DirectX would limit the graphics queue to essentially a single thread, whereas it makes sense for graphics, compute, and memory functions to work simultaneously. Since this hasn’t been the case, it has held back performance substantially and led manufacturers such as AMD to seek their own solutions.
DirectX 12 enables a workload to be shared across multiple threads to reduce the bottleneck faced by having to wait for other parts of the graphics queue to finish before starting the next job. No matter how great the hardware has been, this had previously led to little of it being utilised and being left idle for substantial portions of time.
Async Shaders, which is a core feature of DirectX 12, work across these threads to shorten the time it takes to render. These shorter render times lead to vastly improved performance such as higher framerates, and having further control in optimising the workload where the developer requires can provide even greater reductions in work time.
Multi-Threaded Command Buffer Recording
Every game has a list of tasks for the CPU to relay as fast as possible to the graphics card. This is called a “command buffer” and can include vital things to running a game like; lighting, placing characters, loading textures, and generating reflections.
Despite processors being multi-core for over seven years, past versions of DirectX haven’t taken advantage of multiple cores efficiently. These previous versions have struggled to break-down a command buffer into sensible chunks across cores to work in parallel for much quicker processing which improves performance even further.
The nature of DirectX 11 and earlier meant that it had a lot of “overhead” which taxed the CPU to spend a significant amount of time on driver and API interpretation rather than doing what it should be; executing game code to deliver quality gameplay and stable framerates.
AMD highlights five key ways which DirectX 12 improves command buffer behaviour:
- Overhead is significantly reduced by moving driver and API code to any available CPU thread
- The absolute time required to complete complex CPU tasks is notably reduced
- Game workloads can be meaningfully distributed across >4 CPU cores
- New “bandwidth” on the CPU allows for higher peak draw calls, enabling more detailed and immersive game worlds
- All available CPU cores may now “talk” to the graphics card simultaneously
The manufacturer provides an apt description of DirectX 12 when it says that it’s “like going from a two-lane country road to an eight-lane superhighway” thanks to the optimisations which speeds-up traffic from the CPU to the GPU and can deliver better image quality and framerates to those who choose to use it.
In order to demonstrate its benefits, Oxide Games and Stardock have collaborated with AMD for the upcoming ‘Ashes of the Singularity‘ strategy game. The developer’s CEO, Brad Wardell, says that DirectX 12 delivers performance, image quality, and resolutions that are “not even a possibility” under the previous version.
Are you looking forward to seeing what performance benefits DirectX 12 will deliver? Let us know in the comments.