DirectX 12 vs DirectX 11: What’s New?


DirectX 12 vs DirectX 11: What’s New?


Windows 10 is coming soon and, along with integrated Cortana, Xbox One game streaming and a fancy new web browser, one of its key features is DirectX 12, the latest version of the operating system’s gaming API.

A software layer that sits between the hardware that powers our computers and the software that runs on them, DirectX is at the heart of the vast majority of games that run on Windows. The other major gaming API is OpenGL, which as its name suggests is an open source API. Both offer very similar key functions, but it’s DirectX that tends to be at the heart of most bigger games.


Microsoft talks up the amazing new capabilities for every new release of DirectX, but with DirectX 12 it really does have some key new features, at least when it comes to improving performance. Microsoft will also be announcing new tools and functions for DirectX 12, but has yet to reveal these.


So let’s take a look at what we do know so far about DirectX 12.


DirectX 12 vs DirectX 11: Low-level hardware abstraction


The single biggest new feature of DirectX 12 is a change to the 3D graphics portion, called Direct3D, which will greatly increase the access developers have to optimise their games for specific hardware. This is down to Direct3D having a lower-level of hardware abstraction and a reconfiguration of how the graphics pipeline is managed when compared to DirectX 11 and previous.

What is hardware abstraction? Well, it’s at the root of what makes an API useful. Rather than developers having to write code to deal with different hardware and drivers, the API deals with all that and instead developers have a simplified set of instructions to deal with.


Previously DirectX has strictly provided only a fairly high level of hardware abstraction to make the life of coders easier. However, the downside is that developers are less able to optimise performance for specific hardware. With Direct3D 12, Microsoft will provide more direct access to hardware features.


The specifics of how it does this are beyond the scope of this article, but if you want to read more about the new Pipeline State Objects, Command Lists and Descriptor heaps then you can head to the Microsoft blog to read up on them.



Related: What is HoloLens? Microsoft's AR headset explained



DirectX 12 vs DirectX 11: Draw call overhead reduction


The heart of the new performance, though, is a reduction in draw call overhead, which is the delay inherent in the CPU asking the GPU to render something. This had become something of a bottleneck, but with the new changes the hope is that the GPU will no longer be left waiting for the CPU to tell it what to do.

This problem only really affects CPU-limited games, and most games are limited by GPU speed, so the likely real world impact will be varied. But, as the latest games embrace things like AI and physics more and more, there's ever more for the CPU to do. Also, multi-player games can also be prone to CPU-limitation. A good example is Battlefield 4, which could be CPU-limited even on quite powerful hardware.


This draw call time reduction is the same core benefit that AMD introduced with Mantle, which is why Battlefield 4 was one of the first games to use that new API.


Related: HoloLens vs Google Glass: What's the difference?



DirectX 11: The total per-thread time is 6.6ms.




DirectX 12: The total per-thread is halved to 3.2ms


Why DirectX 12 now?


Generally there is resistance to this approach to an API as it potentially makes the life of developers more difficult and gives them more to do in terms of optimising for specific hardware. With developers often also working on console versions of games, which use different APIs, the extra hassle of optimising for specific PC hardware is just too much.

However, a number of factors have meant that the market is ready for the introduction of DirectX 12. First is simply that developers need it, at least if they care about making the best use of PC hardware. PCs are theoretically much more powerful than the latest games consoles, but they're held back by these legacy features.


The problem has now reached breaking point. You can always throw money at even faster hardware for PCs, but with DirectX 12 there’s an opportunity to make more modest budgets stretch further.


Related: Hands-on with HoloLens: What the pundits are saying


Then there’s the fact that all the latest consoles now sport APUs (combined CPUs and GPUs) made by AMD, so optimisation for those platforms also provides lessons for optimising for PCs with AMD hardware. In fact, the Xbox One will switch to using DirectX 12, completely eliminating any overhead there. This is also why AMD introduced its Mantle extension to DirectX11, because it knew developers would be more on board with optimising for its hardware thanks to the console design wins.


Finally, there’s the fact that DirectX 12 will be used on all Windows 10 devices, which includes not just PCs but tablets and phones too. This cross platform simplicity again offsets any extra work that the new API may introduce.


When will DirectX 12 arrive?


DirectX 12 will be shipping as part of Windows 10, which we expect to arrive in the second half of this year. However, to see the results of that capability Microsoft is targeting the 2015 holiday season for games to arrive that take advantage of DirectX 12.

Will my card work with DirectX 12?


DirectX 12 will be supported by the vast majority of PC graphics cards already on the market. Any Nvidia card since the launch of the Fermi architecture (GTX 400 series), any Intel graphics since Haswell and any GCN-based AMD cards (HD 7000 series) support it, which makes for around 70% of the existing install base.

The exact performance increase you’ll see will vary greatly, but at least in theory you’ll be getting the benefit.


Related: Xbox One vs PS4


For now we're left waiting to find out what new features the new API will have – to go along with the performance enhancements – which we're expecting to be announced over the coming months.