Some of you may have read our previous article about the new open API, Vulkan, and wondered about what Microsoft was doing to keep DirectX as a relevant API. Windows 10 was released this past year with one of its key features answering that exact question, announcing their upgraded API, DirectX 12. Considering the software layer is the most common API found in the biggest games, we thought it would be beneficial to highlight what exactly has been done to keep it applicable.
One of the biggest highlights of DirectX 12 was the installation of Direct3d, which will in turn allow developers to customize their games for the specific hardware. The reason that this makes it so much simpler for developers is the lower-level abstraction and reconfiguration compared to its predecessor, DirectX11. Developers no longer have to code their own code now that the API itself deals with that.
Another highlight from Microsoft’s latest API is its ability to communicate with the GPU. The previous DirectX11 was only able to have the CPU communicate to the GPU 1 core to 1 core at a time. The ability now to constantly keep in contact with GPU, and even possibly have user control over it, makes for the option for vendors to create multiple tools to offload work onto GPU’s.
A major highlight about this increased ability to communicate between threads is the reduction in draw call overhead that inherently comes with it. Because of the fact that DirectX11 couldn’t communicate as fast from the CPU to the GPU, it limited the amount of items that could be on screen. This problem mainly occurred in CPU games, but will greatly help the quality and amount of space shown as newer games with less limitation are released.
DirectX12 also includes the feature of a multi-adapter with allows games to access independent or existing solutions that will in turn utilize multi-graphics processors of different speeds and brands. The combinations of graphics cards and integrated GPU’s will add notable performance and graphics boosts that are head above heels better than the previous DirectX11.
Over at PCWorld, they were able to highlight some of the key aspects of the DirectX12 to the DirectX11 through a series of tests. The first test included a comparison of DirectX11’s single threaded performance followed by AMD’s mantle API and then DirectX12’s multi-threaded performance. DirectX11 managed to only run roughly 900,000 draw calls before their performance dropped to below 30 fps on a Gigabyte WIndForce Radeon R9 290x card. To the naked eye that statistic may not be overwhelming, but once it is put next to the production of the draw call count of the DirectX12, it is. The DirectX 12 API runs over 13.4 million draw calls a second which is even a million draw cells faster than AMD’s mantle API. While the draw call results were incredible, DirectX12 continued to prove victorious throughout the following samples. It dominated their 3DMark API GPU comparison by over 1 million a second and the integrated graphics processor by 1.5 million a second.
After multiple proven facts shown by Microsoft itself and tests done through PCWorld, it is not hard to tell that DirectX12 is the clear dominant to its younger brother, DirectX11. It has proven to allow developers to optimize their games for specific hardware which DirectX11 could not, communicate at a much faster rate than the DirectX11 could, and reduce the draw call overhead time by a significant amount with a much higher performance rate. The use of an open API has been a revolutionary cross platform software, but the DirectX12 has proven that with its upgrades over the previous version it still reigns supreme.