ExtremeTech explains: What is DirectX 12?



It’s been over 18 months since we first visited the topic of DirectX 12 and what features and benefits it would bring to modern gaming. Much has happened since.Windows 10‘s launch and the debut of Ashes of the Singularity brought the first hints of DirectX 12 gaming performance, as did Fable Legends, which debuted some weeks later.We’ve also covered the work being done on Vulkan, the open-source, Linux-friendly DX12 competitor (now not expected to debut until 2016), how that software might impact thefuture of Valve and the company’s push for its own SteamOS, and the debut of DirectX 12on the Xbox One as well.
From debates over the importance of asynchronous computing to confusion over exactly which feature sets are and aren’t supporting on current hardware, DirectX 12 was one of the most important stories we covered in 2015. This story will start you off on a discussion of its capabilities and advantages compared with DirectX 11, and if you want more nuance, feel free to consult the links above.

Enter DX12

Microsoft and Nvidia first took the lid of DirectX 12 at GDC 2014. The new API promised to deliver the same low-overhead benefits of AMD’s custom Mantle UI, along with vastly improved performance and superior hardware utilization compared with DirectX 11. Even better, DirectX 12 (and D3D 12) are backwards compatible with virtually every single GPU from the GTX 400 to the present day. At present, only Nvidia’s Kepler and Maxwell cards are DX12 compatible, but the company has promised that Fermi compatibility is coming in a future update.
Microsoft has published a blog post and accompanying API samples that illustrate how much more powerful the software is, while acknowledging some of the flaws in the DirectX 11 API. One of the central problems with DX11 is that it’s virtually impossible to multi-thread the 3D rendering path. Game rendering ends up running almost entirely on a single CPU thread, bogging down the rest of the system. DirectX 11 also makes certain assumptions about the underlying hardware that have proven to map poorly to GPUs from both AMD and Nvidia.
Here’s a threading comparison between DX11 (top) and DX12 (bottom):

See how, in DX11, the entire workload is hanging on a single thread with extremely low utilization on the other threads? That’s a problem — with the kernel-mode driver running on the same thread as the game and the D3D layer, there’s just not much for the other threads to do. The second graph shows how, by splitting the workload more evenly, the game can hit much lower latencies. Better latencies translates directly into higher frame rates.


This pair of screenshots from 3DMark 2012 further illustrate the difference. Total CPU time is dramatically reduced in DX12 by efficiently reallocating data across all cores.

OS and GPU support

DirectX 12 is currently supported on all Nvidia GPUs based on Kepler and Maxwell. That’s the vast majority of the 6xx series and all of the 7xx and 8xx graphics cards. Fermi support is coming soon, which will extend support all the way back to the 400 and 500-series as well.
AMD supports DirectX 12 on all GCN-class hardware dating back to the launch of that family in 2012. All AMD GPUs from the HD 77xx family (or above), the HD 85xx family (or above), and the Radeon R5 family (or above) all support DirectX 12. This includes the various iterations of GCN, from 1.0 – 1.2.
One thing to understand is that while DirectX 12 is a common API, that API has different optional features, defined as feature levels. AMD’s first-generation GCN products support DirectX 12 at the 11_1 feature level , as do Nvidia’s Fermi and Kepler cards. Cards based on Hawaii, Tonga, and Fiji support the 12_0 feature level. More information on this, and a comprehensive comparison between AMD, Nvidia, and Intel, can be found here.
Windows 10 is the only operating system that supports DirectX 12, which means if you want in on these features you’ll need to take advantage of Microsoft’s free upgrade (or buy a new PC with W10 preloaded).

How’s performance?

There are several facets to DirectX 12 performance, and the benchmarks themselves are very early. As our Ashes and Fable Legends previews demonstrated, AMD gains some ground on its rival in DirectX 12. The gap isn’t enormous, and it varies depending on which cards you compare. The GTX 980 Ti still wins Fable Legends overall, though the Fury X closes that gap in Ashes of the Singularity. Overall, it’s too early to draw conclusions.
If you’re trying to suss out what GPU to buy, my answer is this: With both AMD and Nvidia set to introduce cards based on 14/16nm technology within the next 6-9 months, it’s probably best to wait and see what each company brings to the table. If you have to buy a GPU today, you can expect good DX12 performance from either vendor. The relative difference between the two hasn’t yet been shown to be large enough to justify fans of one company or the other jumping ship. If the early trends hold, DX12 is a bit better for current AMD cards than it is for Nvidia, but I’m not ready to commit to that as fact.
Based on what we’ve seen so far, DirectX 12 won’t automatically deliver higher frame rates as if by magic. Its value is in the way it loosens the stranglehold on multi-threaded CPUs, giving developers the option to use rendering techniques that take advantage of this new ability. We’ve also seen the option to run GPUs from two different vendors in the same PC, and there’s reason to think DX12 could indirectly improve AI calculations as well.
Check out our ExtremeTech Explains series for more in-depth coverage of today’s hottest tech topics.