What’s the Difference Between DirectX 11 and DirectX 12?

DirectX is a collection of APIs, or application programming interfaces, used by software to render multimedia content and communicate with graphical hardware. DirectX’s major component API, Direct3D, handles communications between software and graphics hardware. Because all hardware is different, using a standardized library of functions and calls to communicate with your graphics card speeds up game development. This is called hardware abstraction, and it’s the chief job of the API.

Think about cars: If you can drive one car, you can pretty much drive all of them. The gas and brake pedals are in the same place, and the steering wheel rotates in the same direction and doors open outward. There might be some minor differences in non-critical features like the radio, but overall you know what to expect. DirectX and Direct3D are like that, allowing developers to interface with a wide range of hardware using the same tools. And since most game developers use Direct3D’s standard library, any changes to the API can impact gamers and coders alike.

directx12-new-features

Every major update to DirectX and Direct3D brings new features and developments. Direct3D 12, however, brought some especially significant changes. In fact, it could be ushering in a new area of low-level graphics APIs that will change the way games are developed.

Lower-level hardware abstraction

DirectX 12 now lets developers get closer to the “metal” of their users’ graphics hardware, providing access to features previously unavailable for developers. Exposing lower level hardware means that skilled developers can write more efficient code that executes faster. Specifically, developers can improve optimization with faster multi-threaded performance and more efficient CPU utilization. This could potentially allow for low-level optimizations similar to those we see in console gaming where games are tuned for extremely specific mid-range hardware, eeking out performance that would be impossible without such hyper-specific optimizations.

Previously, DirectX 11 only offered a fairly high level of hardware abstraction, which vastly simplifies the process of coding. In fact, that’s the whole idea behind what makes hardware APIs so powerful. But it also meant that opportunities for fine-tuning code against specific hardware features were less frequent. Microsoft’s Developer Blog provides some great insights into how, exactly, DirectX 12 accomplishes this.

Improved Multicore Performance

directx12-multicore-performance

In the past few years gamers have come to accept that multicore CPUs aren’t as useful for gaming. Games instead rely on fast single-threaded performance. This happens in part because DirectX 11 doesn’t allow for that much parallelization. Multiple CPU threads can submit draw commands simultaneously. However, they’ll still all be processesed in a queue, one at a time. DirectX 12 lifts that limitation, allowing multicore CPUs to send simultaneous instructions to the GPU, opening the door for greater performance on multicore processors.

Draw Call Overhead Reduction

Under DirectX 11 a significant portion of the CPU’s power is spent interpreting API instructions rather than executing game code. DirectX 12 reduces the API overhead, freeing up computation resources for running game code. This means that CPU-limited games could see greater performance, as their CPU power is freed up to handle game code. Most games aren’t CPU-limited today, but its possible that newer games will push this envelope further.

Explicit Multiadapter

directx12-discrete-multiadapter-comparision

DirectX 12 has the power to combine multiple GPUs (AKA “display adapters”) into a single logical unit. This feature, called Explicit Multiadapter, allows multiple GPUs to be instructed by software like a single GPU. For example, with DirectX 12 the integrated GPU on your machine can now tag team with your discrete GPU, lending its own processing power. Greater API support can also mean greater reliability and efficiency in multi-GPU SLI/CrossFire setups. In Microsoft’s testing using integrated graphics in tandem with discrete graphics provided a small but noticeable edge in benchmarks.

Like a lot of incremental improvements, gamers aren’t going to see night-and-day differences between DirectX 11 and DirectX 12. The new features don’t bring new rendering options that wow users. Nor will you see a 100 FPS jump between the two standards. But these gains in efficiency will eventually lead to greater performance on less powerful hardware, improving your PC’s power without upgrading its hardware.

Leave a Reply

Yeah! You've decided to leave a comment. That's fantastic! Check out our comment policy here. Let's have a personal and meaningful conversation.