What is the difference between DirectX 11 and DirectX 12?

DirectX 12 was released with Windows 10 in 2015. Microsoft's release of DirectX 12 ushered in a new era for gamers and game developers.

DirectX 12 was released with Windows 10 in 2015. Microsoft's release of DirectX 12 ushered in a new era for gamers and game developers. Able to reduce CPU overhead while increasing GPU performance, DirectX 12 quickly made a name for itself.

But is increasing 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 through the following article!

What is the difference between DirectX 11 and DirectX 12?

What is the difference between DirectX 11 and DirectX 12? Simply put, DirectX 12 is the latest version of DirectX. One of the most notable differences is how they interact with your hardware. Most games developed using DirectX 11 only use two to four CPU cores. One of these cores usually tells the GPU what to do.

The game will then use the remaining cores to handle various CPU-intensive settings. DirectX 12, on the other hand, distributes the CPU's workload across multiple cores and allows every core to communicate with the GPU simultaneously.

DirectX 12 also comes with some interesting features. This includes asynchronous computing and PSOs. Asynchronous computing increases GPU utilization by allowing multiple workloads to operate in parallel. This essentially unleashes the full potential of the GPU.

In addition to rendering graphics, your GPU also handles many 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. Performance suffers when this happens because your GPU resources are not being used efficiently.

 

Think of it like a waiter at a restaurant. When the waiter takes your order, they will ask you what you want to drink first. When you receive your drink, they will ask what you would like for your main course. Your order is processed step by step. The waiter will not ask you what dessert you want before you eat the main course. Although this seems reasonable, it is not as effective as expected.

In computing, a different GPU resource handles each server task. Until you receive your drink, the GPU resources needed to fulfill your main course order will be idle. With DirectX 12's asynchronous computing capabilities, servers will be able to take multiple orders from you at once, just like in a fast food chain. This maximizes GPU usage and improves your gaming performance.

DirectX 12 also introduces PSOs. With DirectX 11, game graphics are sent to the GPU for display, where various hardware settings are responsible for interpreting and displaying this data. This is called the graphics pipeline, and the input and output data stream occurs as your GPU renders frames. However, DirectX 11's graphics system is not perfect.

This pipeline contains a set of different states, including rasterize state, blend state, and depth stencil state, along with many other components. In DirectX 11, there are dependencies between these different states. As a result, a state cannot be completed until the previous state has been determined. This reduces GPU usage and increases CPU overhead at the cost of performance.

To solve this problem, DirectX 12 introduced PSOs, objects that describe the state of the entire graphics system. PSO is like a bottle that contains many states and components needed to create an image. This allows the GPU to pre-process any dependent states instead of constantly recalculating states based on the current graphics pipeline.

This significantly reduces CPU overhead in DirectX 11 and improves performance. So what will this difference look like? According to Microsoft, DirectX 12 reduces CPU overhead by up to 50% and improves GPU performance by up to 20%. While that's a significant improvement, this doesn't mean you'll see the same results.

Why isn't switching from DirectX 11 to DirectX 12 simple?

DirectX 11 was first released for Windows Vista on October 27, 2009. So, with DirectX 12 launching in 2015, there was a 6-year gap between DirectX 11 and DirectX 12. During this time, thousands The game was developed using DirectX 11. Unfortunately, moving from DirectX 11 to DirectX 12 is not easy.

DirectX 11 is called a high-level API. Simply put, high-level APIs are easier for developers to work with. The result is games that are stable, engaging, and playable. On the other hand, DirectX 12 is a low-level API and is different from DirectX 11. While it allows developers to fine-tune optimizations at a granular level, it also requires extensive knowledge to use.

That means, a game developed in DirectX 12 may have worse performance depending on the developer's knowledge of the API. Some improvements come with DirectX 12, but it really depends on how well the developer can implement it. For this reason, many developers choose to use high-level APIs such as DirectX 11.

Should I choose DX 11 or DX 12?

The answer depends on a few things, such as the game you're trying to run. For example, Guild Wars 2 runs on DirectX 11. Even if your operating system and hardware can use DirectX 12, you won't have the option of selecting DirectX 11 in Guild Wars 2 because the game doesn't support it. This is entirely the decision of the ArenaNet developer.

Picture 1 of What is the difference between DirectX 11 and DirectX 12?

Believe it or not, it took ArenaNet 9 years to make the transition from DirectX 9 to DirectX 11. However, some games support both DirectX 11 and DirectX 12, including Fortnite, Battlefield 5, Shadow of Tomb Raider, etc. Users can switch between DirectX 11 and DirectX 12 in the game settings.

Currently, the fact that some games support both DirectX 11 and 12 may make you wonder about in-game performance. Does choosing DX 11 or DX 12 provide better in-game performance? The following video illustrates the difference between DirectX 11 and DirectX 12 in a series of games, showcasing important parameters such as average frames per second, CPU usage, GPU usage, etc., using Using AMD Ryze 3600, Nvidia GeForce RTX 3060 Ti and 16GB DDR4 RAM.

The results are surprising in many ways, with at times little visual difference between DX 11 and DX 12, despite their release being years apart. You may have also noted the difference in GPU and CPU load between both versions of DirectX, with the DX 12 version of each game generally requiring less resources than the old DX 11.

In addition to in-game support, choosing between DirectX 11 and DirectX 12 will also depend on your hardware. Almost 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 This means it won't be able to run most modern GPUs. The game runs on DirectX 11 and DirectX 12.

Update 30 October 2023
Category

System

Mac OS X

Hardware

Game

Tech info

Technology

Science

Life

Application

Electric

Program

Mobile