However, is increasing your performance really as simple as switching from DirectX 11 to DirectX 12? Let’s find out by looking at the differences between DirectX 11 and 12.

What Is Microsoft’s DirectX?

As explained in our overview of Microsoft DirectX, DirectX is a collection of APIs used for handling tasks related to multimedia. This includes game programming on Microsoft-based platforms like Windows and Xbox. To provide some context, let’s briefly talk about APIs.

An application programming interface (API) makes it possible for two or more computer programs to communicate with each other, which we discuss in our overview of APIs. Think of it like a telephone. If your mom sends you a text with a grocery list, your phone will receive that data and display it for you. That is basically an API.

What Are the Differences Between DirectX 11 and DirectX 12?

So, what are the differences between DirectX 11 and DirectX 12? Put simply, DirectX 12 is the latest version of DirectX. One of the most noticeable differences between the two is how they interact with your hardware. Most games developed with DirectX 11 only utilize between two and four CPU cores. One of these cores is usually dedicated to telling the GPU what to do.

The game then uses the remaining cores to handle various CPU-intensive settings like a game’s particles or draw distance. On the other hand, DirectX 12 spreads a CPU’s workload across multiple cores and also allows every core to talk to the GPU at the same time.

DirectX 12 also comes with some fancy bells and whistles. This includes asynchronous computing and pipeline state objects (PSOs). Asynchronous computing increases GPU utilization by allowing multiple workloads to work in parallel. This essentially unlocks your GPU’s full potential.

Aside from graphics rendering, your GPU is responsible for handling a wide range of other tasks, such as running machine learning algorithms. With DirectX 11, the GPU can only perform one of these tasks at a time and in a certain order. When this occurs, performance takes a hit because all of your GPU resources aren’t being used.

Think of it like a waiter at a restaurant. When a waiter first takes your order, they ask you what you would like to drink first. Once you receive your drinks, they ask you what you would like for the main course. Your order is taken in steps. The waiter isn’t going to ask you what you would like for dessert before you have had your main course. While this is effective, it isn’t as efficient as it could be.

In computing, each of the waiter’s tasks would be handled by a different GPU resource. Until you receive your drink, the GPU resources needed to take your main course order would be idle. With DirectX 12’s asynchronous computing, the waiter would be able to take your order all at once like in a fast food chain. This maximizes GPU usage and improves your gaming performance.

DirectX 12 also introduced PSOs. With DirectX 11, when a game’s geometry is submitted to the GPU to be rendered, a variety of hardware settings are responsible for interpreting and rendering this data. This is referred to as the graphics pipeline and is the flow of data inputs and outputs that occur as your GPU renders frames. However, DirectX 11’s graphics pipeline isn’t perfect.

This pipeline contains a collection of different states, including rasterize state, blend state, and depth stencil state, among other components. In DirectX 11, there are dependencies between these different states. As a result, one state cannot be completed until the previous state is defined. This decreases GPU utilization and increases CPU overhead at the cost of performance.

To get around this, DirectX 12 introduced PSOs, which are objects that describe the state of the entire graphics pipeline. PSOs are like a bottle that contains the various states and components needed to create an image. This allows the GPU to pre-process every dependent state instead of having to continually recompute states based on the current graphics pipeline.

This significantly reduces the CPU overhead found in DirectX 11 and improves performance. So, what does this difference actually look like? Well, according to Microsoft, DirectX 12 reduces CPU overhead by up to 50 percent and improves GPU performance by as much as 20 percent. While those are some substantial improvements, this doesn’t mean you will see the same results.

Why Switching From DirextX 11 to DirectX 12 Isn’t Straightforward

DirectX 11 was first released for Windows Vista on October 27, 2009. So, with DirectX 12 following in 2015, that’s a six-year gap between DirectX 11 and DirectX 12. During this time, thousands of games have been developed using DirectX 11. Unfortunately, making the move from DirectX 11 to DirectX 12 is anything but easy.

DirectX 11 is what’s called a high-level API. To put it simply, high-level APIs are easier for developers to work with. The result is stable, polished, and playable games. On the other hand, DirectX 12 is a low-level API and is a different beast compared to DirectX 11. While it allows developers to fine-tune optimization at a granular level, it also demands extensive knowledge to use.

That being said, a game developed in DirectX 12 could end up with worse performance depending on the developer’s knowledge of the API. There are improvements that come with DirectX 12, but it really comes down to how well a developer can implement it. For this reason, a lot of developers choose to stick to high-level APIs like DirectX 11.

Should You Choose DirectX 11 or DirectX 12?

The answer depends on a few things, like what game you are trying to run. For example, Guild Wars 2 runs onDirectX 11. Even if your OS and hardware use DirectX 12, you will not have the option to select DirectX 11 in Guild Wars 2 because the game does not support it. This is entirely the decision of the developer, ArenaNet.

Believe it or not, it took nine years for ArenaNet to make the switch from DirectX 9 to DirectX 11. However, there are some games that do support both DirectX 11 and DirectX 12. Fortnite (read our Fortnite cheat sheet), for example. Through the game’s settings, users can switch between both versions. To summarize, not every game supports both DirectX 11 and DirectX 12. For those that do, switch between the two and determine for yourself which performs better on your PC.

Whether you can choose between DirectX 11 and DirectX 12 will also depend on your hardware. Just about any modern GPU will support DirectX 12, but the same can’t be said for older GPUs like the Radeon HD 4870. Released in 2008, this GPU only supports up to DirectX 10. This means that it would be incapable of running most modern games, which run using DirectX 11 and DirectX 12.

Is DirectX 12 the Right Choice for You?

All in all, switching from DirectX 11 to DirectX 12 isn’t as black and white as it sounds. It depends on a variety of factors such as hardware, software, operating system, and whether a game supports both at all. All of these need to be considered before making a decision, and this will likely be true for future generations of DirectX as well.