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.
Capable of reducing CPU overhead while boosting GPU performance, DirectX 12 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’s DirectX?
Image Credit: Martin Kerstein/Guild Wars 2
This includes game programming on Microsoft-based platforms like Windows and Xbox.
To provide some context, let’s briefly talk about APIs.
Think of it like a telephone.
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 is how they interact with your hardware.
Most games developed with DirectX 11 only utilize between two and fourCPU cores.
One of these cores usually tells the GPU what to do.
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.
Performance takes a hit when this occurs because your GPU resources aren’t being used efficiently.
Think of it like a waiter at a restaurant.
When a waiter takes your order, they ask you what you want to drink first.
Once you receive your drinks, they ask you what you want for the main course.
Your order is taken in steps.
While this is effective, it isn’t as efficient as it could be.
In computing, a different GPU resource would handle each of the waiter’s tasks.
Until you receive your drink, the GPU resources needed to take your main course order will be idle.
This maximizes GPU usage and improves your gaming performance.
DirectX 12 also introduced pipeline state objects (PSOs).
However, DirectX 11’s graphics pipeline isn’t perfect.
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.
PSOs are like a bottle that contains the various states and components needed to create an image.
This significantly reduces the CPU overhead found in DirectX 11 and improves performance.
So, what does this difference look like?
While those are some substantial improvements, this doesn’t mean you will see the same results.
During this time, thousands of games have been developed using DirectX 11.
Unfortunately, moving from DirectX 11 to DirectX 12 is anything but easy.
DirectX 11 is what’s called a high-level API.
Simply put, 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 a different beast than DirectX 11.
While it allows developers to fine-tune optimization at a granular level, it also demands extensive knowledge to use.
For this reason, many developers choose to stick to high-level APIs like DirectX 11.
DX 11 vs. DX 12: Which Should You Choose?
The answer depends on a few things, like what game you are trying to run.
For example, Guild Wars 2 runs on DirectX 11.
This is entirely the decision of the developer, ArenaNet.
Users can switch between DirectX 11 and DirectX 12 in the game tweaks.
Does choosing DX 11 or DX 12 deliver better in-game performance?
In addition to in-game support, choosing between DirectX 11 and DirectX 12 will also depend on your hardware.
Released in 2008, this GPU only supports up to DirectX 10.