If you’re a gamer, then you know the importance of DirectX and how it affects your multimedia, especially your videos, game programming, and graphics on Microsoft platforms. DirectX is an API (application programming interface) coined as a shorthand term for all Microsoft-related APIs such as Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, and so on. When Microsoft decided to develop a gaming console, the X was used as a reference while naming the Xbox to indicate that the console was created based on DirectX technology.
With the different versions of the DirectX, it’s important to know the difference between DirectX 12 and DirectX 11 to be able to understand if updating your DirectX will give a better experience while using the API for whatever reasons. Hence why in this article, I’ll be discussing the differences between DirectX 11 and DirectX 12 and which one better suits the purpose for which it is supposed to be used.
DirectX 11 was unveiled by Microsoft at the Gamefest 08 event hosted in Seattle. After a week of the initial release of Windows 7 which launched with Direct3D as a base standard, DirectX 11’s final platform update was launched for windows vista on October 27, 2009.
Its major features include GPGPU support (DirectCompute), and Direct3D 11 which also has tessellation support and improved multi-threading support to help video game developers to develop games that better utilize multi-core processors. Parts of the DirectX 11 like the multi-threaded resource handling can be supported on Direct3D 9/10/10.1 class hardware.
DirectX 11’s hardware tessellation feature and Shader Model 5.0 requires Direct3D 11 supporting hardware. DirectX 11 has had four updates since its release:
- DirectX 11.1 is included in Windows 8 and backported to Windows 7, via the Windows 7 platform update. This version supports WDDM 1.2 for increased performance and features improved integration of Direct2D, Direct3D, DirectCompute, Xaudio2, DirectXMath, and XInput libraries from the XNA framework. This version also features stereoscopic 3D support for gaming and video.
- DirectX 11.2 which is included in Windows 8.1 and Windows Server 2012 R2. It also had some added new features to Direct2D like geometry realizations, not leaving out its added swap chain composition that allows some elements of the scene to be rendered at lower resolutions and the. Composited through hardware overlay with other parts rendered at higher resolution.
- DirectX 11.X is a superset of DirectX 11.2 which runs on the Xbox One. This version includes some features such as draw bundles, that were later announced as part of DirectX 12.
- DirectX 11.3 which was announced along with DirectX 12 at GDC was released in 2015. This version is meant to complement DirectX 12 as a higher-level alternative. This version is included in Windows 10.
This version of DirectX was announced by Microsoft at the GDC on March 20, 2014, and was officially launched with Windows 10 on July 29, 2015. The major feature of the DirectX 12 is the introduction of advanced low-level programming APIs for Direct3D 12 which helps to reduce driver overhead. With this release, developers are now able to implement their own command lists and buffers to GPU, thereby allowing for more efficient resource utilization via parallel computation.
Microsoft’s Lead developer, Max McMullen mentioned that the main goal for the Direct3D 12 is to achieve “console-level efficiency” on phones, tablets, and PC. Direct3D 12’s release comes with other inventions for low-overhead graphics APIs that include AMD’s Mantle for AMD graphics cards, Apple’s Metal for iOS and macOS, and Khronos Group’s cross-platform Vulkan.
DirectX 12 features multi-adapter support which allows developers to utilize several GPUs on a system simultaneously as multi GPU support was previously dependent on vendor implementations like AMD CrossFireX or NVIDIA SLI.
The implicit multi-adapter support will work in an identical manner to previous versions of DirectX where frames are rendered alternatively across linked GPUs of identical compute power. While the explicit multi-adapter will provide two unique API patterns to developers.
Linked GPUs will let DirectX view graphics cards in SLI or CrossFireX as a single GPU and will also use the combined resources. Then unlinked GPUs will let GPUs from different vendors be utilized by DirectX, such as supplementing a dedicated GPU with the integrated GPU on the CPU, or integrating AMD and NVIDIA cards.
DirectX 12 can be used on all Fermi and newer NVIDIA GPUs, on AMD’s GCN-based chips, and on Intel’s Haswell and newer processor graphics units. The improvements in DirectX 12 performance on the Xbox are not as substantial as on the PC.
In March 2018, DirectX Raytracing (DXR) was reported to be capable of real-time ray-tracing on supported hardware, with the DXR API being added in the Windows 10 October 2018 update. In 2019, DirectX 12 was announced by Microsoft to have arrived in Windows 7 but only as a plug-in for some particular games.
DirectX 12 Ultimate was revealed by Microsoft in March 2020 and was aimed to unify a common library on both Windows 10 computers and the Xbox Series X and other ninth-generation Xbox gaming consoles. Some features on the 12 ultimate include DirectX Raytracing 1.1, Variable Rate Shading, which allows programmers the control over the level of detail Shading, depending on the design choices, Mesh shaders, and Sampler Feedback.
Differences Between DirectX 11 And DirectX 12
|S/N||DirectX 11||DirectX 12|
|1.||Versions||11, 11.1, 11.2||12, 12 ultimate|
|2.||Numbers||6.01.7600.16385, 6.00.6002.18107, 6.01.7601.17514,6.02.9200.16384, 6.03.9600.16384.||10.00.10240.16384, 10.00.15063.0000,10.00.17763.0000, 10.00.17763.0001, 10.00.18362.0116, 10.00.19041.0928, 10.00.22000.1000.|
|3.||Last Update||DirectX 11.2 on October 18, 2013.||DirectX 12 Ultimate on October 5, 2021.|
|4.||Available on||Windows 7, Windows Server 2008 R2, Windows Vista SP2, Windows Server 2008 SP2, through the Platform Update for Windows Vista and Windows Server 2008, Windows 7 SP1, Windows Server 2008 R2 SP1, Windows 7 SP1 (partially), Windows 8, Windows RT, Windows Server 2012, Windows 8.1, Windows RT, Windows Server 2012 R2, Xbox One.||Windows 10, Xbox One, Direct3D 12 only for Windows 7 SP1, via a dedicated source code package for app developers, Xbox Series X, Ultimate, Windows 11.|
|5.||Scaling with Multi-Core CPUs||Less efficient.||More efficient.|
|6.||Maximum hardware utilization||More favored by NVIDIA and not AMD GPUs.||More favored by AMD GPUs and not as favored by rival NVIDIA parts as this leads to better, maximum hardware utilization.|
|7.||Developer control||Abstract and was mostly taken care of by the drivers and the API (although some engines like Frostbyte and Unreal provided low-level tools as well), leading to less developer control.||Provides closer to metal access, meaning that most of the rendering responsibilities and resource allocation are handled by the game engines with some help from the graphics drivers, leading to more developer control.|
|8.||Pipeline State Objects||In DirectX 11, the objects in the GPU pipeline exist across a wide range of states such as Vertex Shader, Hull Shader, Geometry shader, etc.||DirectX 12 replaces the various states with Pipeline State Objects (PSO) which are finalized upon creation itself. A PSO in simple words is an object that describes the state of the draw call it represents.|