DirectX 12 was released alongside Windows 10 in 2015. With its release, Microsoft’s DirectX 12 ushered in a new era for gamers and game developers. DirectX 12, capable of reducing CPU overhead and increasing GPU performance, quickly made a name for itself.
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 DirectX?

As explained in our Microsoft DirectX overview, DirectX is a collection of APIs used to handle multimedia related tasks. This includes programming games 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 texts you a shopping list, your phone will receive that data and show it to you. That’s basically an API.
What are the differences between DirectX 11 and DirectX 12?
So what are the differences between DirectX 11 and DirectX 12? Simply put, DirectX 12 is the latest version of DirectX. One of the most notable differences between the two is how they interact with your hardware. Most games developed with DirectX 11 only use 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, such as a game’s particles or draw distance. On the other hand, DirectX 12 distributes the CPU workload across multiple cores and also allows each core to communicate with the GPU at the same time.
DirectX 12 also comes with some fancy bells and whistles. This includes asynchronous computing and Pipe State Objects (PSOs). Asynchronous computing increases GPU utilization by allowing multiple workloads to run in parallel. Basically, this unlocks the full potential of your GPU.
In addition to rendering graphics, 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 suffers because not all of the GPU’s resources are used.
Think of it like a waiter in a restaurant. When a waiter first takes your order, they ask what you would like to drink first. Once you get your drinks they ask you what you would like for your main course. Your order is taken in steps. The waiter is not going to ask you what you would like for dessert before you have eaten your main course. While this is effective, it’s not 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 entrée order will be idle. With DirectX 12 asynchronous computing, the server could take your order in one go like a fast food chain. This maximizes GPU usage and improves gaming performance.
DirectX 12 also introduced PSO. With DirectX 11, when a game’s geometry is sent to the GPU for rendering, a variety of hardware configurations are responsible for interpreting and rendering this data. This is known as the graphics pipeline, and is the stream of data input and output that occurs as the GPU renders frames. However, the DirectX 11 graphics pipeline is not perfect.
This pipeline contains a collection of different states, including the raster state, blend state, and depth template state, among other components. In DirectX 11, there are dependencies between these different states. As a result, a state cannot be completed until the previous state is defined. This decreases GPU utilization and increases CPU overhead at the cost of performance.
To prevent 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 each dependent state instead of having to continually recalculate states based on the current graphics pipeline.
This significantly reduces the CPU overhead found in DirectX 11 and improves performance. So how is this difference really? Well, according to Microsoft, DirectX 12 reduces CPU overhead by up to 50 percent and improves GPU performance by up to 20 percent. While those are some substantial improvements, it doesn’t mean you’ll see the same results.
Why switching from DirextX 11 to DirectX 12 is not easy
DirectX 11 was first released for Windows Vista on October 27, 2009. So with DirectX 12 in 2015, there is a six-year gap between DirectX 11 and DirectX 12. During this time, thousands of games have been developed using DirectX 11. Unfortunately, switching from DirectX 11 to DirectX 12 is not easy.
DirectX 11 is what is called a high level API. Simply put, high-level APIs are easier for developers to use. 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 poorer 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, many developers choose to use 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’re trying to run. For example, Guild Wars 2 runs on DirectX 11. Even if your operating system 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 ArenaNet nine years to switch from DirectX 9 to DirectX 11. However, there are some games that do support DirectX 11 and DirectX 12. Fortnite (read our Fortnite cheat sheet), for example. Through the game settings, users can switch between both versions. Long story short, not all games support DirectX 11 and DirectX 12. For those that do, switch between the two and see for yourself which works best on your PC.
Whether you can choose between DirectX 11 and DirectX 12 will also depend on your hardware. Pretty much any modern GPU will support DirectX 12, but the same cannot be said for older GPUs like the Radeon HD 4870. Released in 2008, this GPU only supports up to DirectX 10. This means it would be unable to run most modern games, that run with 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 or white as it seems. It depends on a variety of factors, such as hardware, software, operating system, and whether a game supports both. All of these need to be considered before making a decision, and this is probably true for future generations of DirectX as well.