Software Technology

DirectX 11 vs DirectX 12

DirectX 11 vs DirectX 12
Written by prodigitalweb

It was 2015 when DirectX 12 was released alongside Windows 10. Its release brought a new era for game developers and gamers. While it can boot GPU performance, it helps to reduce CPU overhead. On the other hand, DirectX 11, its predecessor, was released in 2019 when Windows Vista came out. However, DirectX 12, the newer API came with significant improvements. Let’s dig into this article to learn about DirectX 11 vs DirectX 12 in detail.

What is Microsoft’s DirectX?

It is a collection of APIs that you can use to handle multimedia activities. For instance, you can program games on MS platforms such as Windows and Xbox. With the help of an API, two or more computer programs are capable of communicating with each other.

The Importance of DirectX:

Developers depend on the OS for driver support when they need to create a game for Windows. In this case, DirectX plays an important role by serving as a backbone, with newer versions that come with some vital features like ray tracing. However, you should know that there are some specialized software frameworks called game engines, such as Unreal Engine. But what if nothing will be there? Previously, developers liked to create games for DOS and gaming consoles. But after some time, DirectX turned into an industry standard. In order to become a proper and complementary platform, DirectX has paved the way for PC gaming.

However, you should know that creating games for Xbox or PlayStation is still easier for developers. A few people think that console gaming is the way to go. PC gaming can provide users with several benefits. 8K resolution, high-fidelity ray tracing, ultra-wide monitors, and smoother refresh rates can offer you an excellent experience. Because of DirectX and other graphics APIs, PC gaming is enjoyable nowadays. Thanks to DirectX because of which all modern PCs are able to work in the same manner in order to play PC games.

Why Switching From DirectX 11 To DirectX 12 Isn’t Straightforward?

DirectX 12 was released in 2015, six years after the release of DirectX 11. Developers have made plenty of games during these years using DirectX 11. However, you will be glad to know that moving from DirectX 11 to DirectX 12 is simple.

DirectX 11 is a high-level API and that’s why developers can easily work with it. As a result, you can play stable games. On the contrary, DirectX 12 is a low-level API enabling developers to fine-tune optimization at a granular level. But you need to have a lot of knowledge to use this new API.

So, a game made using DirectX 12 might offer worse performance if the developer lacks proper knowledge. As a developer, how you implement it is very important. That’s why several developers still like to use high-level APIs such as DirectX 11.

DirectX 11 vs DirectX 12— What is the Difference?

Mainly their interaction level with your device’s hardware differentiates these two. Let’s learn about DirectX 11 vs. DirectX 12 in detail.

  • Type of API level:

DirectX 12 is a low-level API that can operate in a software layer near hardware. This indicates that DirectX 12 can control the GPU more directly and is capable of providing more efficient performance. On the flip side, DirectX 11 is a high-level API, indicating that despite having access to GPU and other hardware, this one is more removed and it only has generalized control over optimizations.

DirectX 12 has become more time-consuming to work because of the low-level access to hardware optimization. It is one of the reasons developers are still preferring to use DirectX 11 to make more stable games.

  • Better Scaling With Multi-Core CPUs:

Improved CPU utilization is one of the core benefits of using DirectX 12. Games using DirectX 11 used 2-4 cores for different mechanics like Physics, AI, draw-calls, etc. Even a few games are limited to 1 core. But with DirectX 12, this situation has totally changed. It is capable of evenly distributing the load across all cores. Thus, multi-core CPUs become more relevant for gamers.

  • Use:

DirectX 11 was released several years ago and has become old now. Still, this API is preferable for developers, and they use it in multiple modern games. But now, the demand for a lower-level API is increasing. That’s why Microsoft designed DirectX 12 and released it in the market. It enables developers to gain extra granular control over hardware resources such as the CPU and GPU.

  • Operations:

DirectX 12 can access many cores using the new Parallel Compute feature. If you use DirectX 11 API, you will find the operations getting performed in a linear queue. It means that texture compression, physics simulation, shadow generation, and CPU data uploads will occur one after another. If you use DirectX 12, you will find that such operations are executed in parallel, which results in a great improvement in efficiency.

  • Asynchronous Compute:

DirectX 12 comes with Asynchronous Compute through which operations can be executed without waiting for the previous one to finish. For instance, the method to create in-game shadows is possible to be executed before the completion of the texture compression operation. In simple words, when it comes to talking about communicating between gaming software and PC hardware, compared to Direct X 11, DirectX 12 is more efficient.

  • Pipeline State Objects:

When you use DirectX 11, you will find objects in the GPU pipeline across Hull Shader, Vertex Shader, Geometry Shader, and other states. These states will often be interdependent on each other. Therefore, the next stage is unable to progress unless the previous stage is defined. Usually, a geometry is sent from a scene to the GPU for rendering. During this time, the essential hardware and resources will vary depending on the blend state, rasterizer state, depth stencil state, culling, etc.

It is needed to define every object in the DirectX 11 individually at run time. It will not be possible to execute the next state until the previous one has been finalized. The hardware units needed by this API are shaders vs ROPs, TMUs, etc. It leaves hardware under-utilized and results in reduced draw calls.

The new API DirectX 12 uses PSO or Pipeline State Objects to replace different states. These are finalized upon creation itself. In simple words, PSO refers to an object that is used to describe the draw call’s state. An app can be used to generate as many PSOs as needed and to switch between them when required. PSOs come with bytecodes for all shaders like pixel, hull, vertex, domain, and geometry shaders. Additionally, you can convert them to any state according to your needs without relying on other state or object.

  • Maximum Hardware Utilization:

AMD GPUs preferred the new API titles more than the NVIDIA parts because of better utilization. While NVIDIA always comes with better driver support, AMD hardware doesn’t have it. In order to improve utilization, DirectX 12, the new API brings several technologies like asynchronous compute. You can use this technology to execute the pipeline’s multiple stages simultaneously.

  • Closer To Metal Support:

Using DirectX 12 provides developers more control over how their game will use the hardware. Previously, drivers and the API tool took care of them. But now the task is in the hands of the developers. Developers have closer to metal access indicating that game engines handle most resource allocation and rendering responsibilities using the graphics drivers.

DX 11 vs DX 12— Which Should You Choose?

You may be now thinking that DX 11 or DX 12 —— which one you should choose. Remember that the answer relies on the game you want to run. The Guild Wars 2 game runs on the old API DirectX 11. So, although your device’s hardware and OS use DirectX 12, you do not get an option to select DirectX 11 in the game. The reason is that the game is not compatible with this. However, there are a few games supporting both APIs. Names of these games are Fortnite, Battlefield 5, Shadow of the Tomb Raider, etc. You are capable of switching these APIs in the game settings.

Now you may think of those games which support both APIs — which one among these two APIs offers better in-game performance? It depends on many important factors, such as CPU and GPU usage, average frames per second, etc.

You can find a little visual difference between these two APIs though there are many years of difference in their launches. Additionally, you might have observed the differences in CPU and GPU loads between these two APIs. Games based on DX 12 versions need fewer resources than the older DirectX 11.

Along with in-game support, hardware is another factor based on which you need to decide for which one you should go for. Modern GPUs are compatible with DirectX 12. But it isn’t possible for any old model of GPU such as the Radeon HD 4870 released in 2008. This GPU is compatible with up to DirectX 10. It means that this GPU could not run most modern games, which are capable of using DirectX 11 and DirectX 12 in order to run.

Should You Use DirectX 12?

Multiple games like Civilization VI, Control, Shadow of the Tomb Raider, and Dying Light 2 are compatible with both DirectX11 and DirectX 12. You can see most of the games using DirectX 11 by default for compatibility reasons. However, the idea of changing this API to DirectX 12 mode is good.

The exception is when you use a PC that is 10 or more years old. Older hardware runs on DirectX 11 smoothly. But in this case, DirectX 12 may be unable to offer enough benefits. Most people need to choose DirectX 12 for its better game optimizations and more extensive features.

DirectX 12 can provide you with improved performance in playing games that are compatible with both APIs when you implement it properly. When it comes to graphics, DX12 is better than DX11, as it comes with different advancements that have been made in the last few years. These are:

Ray Tracing:

It is an important feature of DX 12. This API can facilitate real lighting, reflections, and shadows. Games with ray tracing will look amazing, mainly when you consider the look of Cyberpunk 2077 keeping DLSS 3.5 enabled.

DirectML:

This addition can be found only on the DirectX 12 API. It helps to improve game development with ML technology. Also, it boosts graphical fidelity. It is found that a super-resolution technique that uses DirectML has better quality compared to traditional bilinear upsampling.

Variable Rate Shading (VRS):

This one is another upgrade that DirectX 12 comes with. In order to enhance overall performance, developers use this to reduce the shading rate in a specific area. As some parts of the game will not have a visual fidelity downgrade with a lower shading rate. So, it is possible to increase performance in-game with VRS. You should know that VRS is available in two types including Content Adaptive Shading and Motion Adaptive Shading.

  • Content Adaptive Shading enables individual shading of every 16×16 screen tiles. It permits the GPU to boost the rate of shading in stand-out regions and reduces them in the rest.
  • Motion adaptive shading boosts the shading rate of those objects which are in motion, while decreasing that of relatively static objects. In a racing game, a car gets increased shading. But the sky along with off-road regions will get less priority.

Multi-GPU Support:

DirectX 12 is compatible with two types of multi-GPU support, which are implicit and explicit. implicit is SLI/XFX and leaves its task to the vendor driver. The second type allows the game engine to control the functionality of the two GPUs in parallel. It enables improved scaling. Also, it helps to mix and match different graphics processor units, including your dGPU and iGPU.

Double Video Memory:

Another advantage that should be mentioned is two GPUs’ VRAM images are not mirrored. So, in order to double the memory, these can be stacked. Because of these excellent features,  DirectX 12 has become a major software upgrade to the world of PC gaming.

The Bottom Line:

D This version allows other graphics software to work more quickly and efficiently. But this API requires hardware that will be compatible with it. Without the proper hardware, you will not be able to see any type of performance improvements. In addition, FPS could drop and stutter, after switching to DirectX 12.

Frequently Asked Question: 

  1. Is DirectX free?

Yes. It is possible to download Microsoft DirectX on the computer for free.

  1. Should I use DirectX 12 or normal?

It totally depends on your system. If the system supports it, you can get better performance using DirectX 12; otherwise, you can go for Dx11. 

  1. Does DirectX 12 improve FPS?

You can enjoy improved gaming performance using DirectX 12. It offers advanced visual effects and better frame rates. However, when you play games on older hardware, you can find DirectX 11 improving game stability.

About the author

prodigitalweb