DirectX 12: Separating fact and fiction
During GDC last year, Microsoft unveiled it is working on an overdue successor to DirectX 11. For the first time, the company is working with the various chip manufacturers themselves to squeeze every ounce of performance out of their hardware. Since then, there has been a lot of speculation about its capabilities which we hope to clear up in this article.
A demo at Intel's SIGGRAPH conference on the Surface Pro 3 displayed huge improvements when switching between DirectX 11 and its upcoming successor...
Flicking the switch between the two APIs shows DirectX 11 with a frame rate of around 19 frames per second, whereas DirectX 12 caused a roughly 60% performance increase to 33 frames per second. Little of this is to do with lower-level access to the hardware - maybe a frame or two - but rather some serious optimisations in how resource overhead can be reduced through advanced techniques.
DirectX 12 allows developers more control over how the GPU is used, removing the guesswork historically taken by drivers and OS software as to how memory, state, and synchronisation is managed. CPU-bound tasks are efficiently distributed across the multiple cores for increased performance, whereas previous versions would hammer a single core.
CPUs haven't increased in performance anywhere near as much as GPUs, which means taking advantage of multiple cores is important. This is where DirectX 12 shines, as you can see in the leaked slides below showing the improved thread distribution...
DirectX 12 will offer huge improvements in CPU-intensive areas of games, as we've seen from Intel's demo. The GPU-side is a little more unknown at this point, and benefits could be on a case-by-case scenario.
Matt Sandy, Program Manager for Microsoft’s Direct3D team, said the API "introduces a set of new rendering pipeline features that will dramatically improve the efficiency of algorithms such as order-independent transparency, collision detection, and geometry culling."
The 'Star Swarm' demo - which uses some of those rendering pipeline features - shows a dramatic increase as claimed. In fact, some GPU tests from AnandTech show an over 5x increase in performance under some scenarios...
Radeon R9 290X (DX11) 8.3fps
Radeon R9 290X (DX12) 42.9fps
GeForce GTX980 (DX11) 26.7fps
GeForce GTX980 (DX12) 66.8fps
Here we've compared graphics cards from both Nvidia and AMD to show the improvements made to performance from both manufacturers' cards. DirectX 12 is helping developers to get the best out of every GPU, and looks set to help them play nicely with one another for the first time...
The reputable Tom's Hardware is reporting that DirectX 12 will allow computers with dual graphics cards - from different manufacturers - to work together for the first time by turning the entire graphics subsystem into "a single, more powerful graphics card. Thus, users get the robustness of a running a single GPU, but with multiple graphics cards."
Tom's Hardware notes that the API includes a "frame rendering method called SFR, which stands for Split Frame Rendering."
It explains: "Developers will be able to manually, or automatically, divide the texture and geometry data between the GPUs, and all of the GPUs can then work together to work on each frame. Each GPU will then work on a specific portion of the screen, with the number of portions being equivalent to the number of GPUs installed."
So, what about the Xbox One? Reducing the CPU bottleneck is what could see the biggest improvement, as the CPU will be able to calculate much-faster whilst the GPU performs the actual rendering.
This multi-threading allows more processing to be handled in the CPU, which otherwise might have put more strain on the GPU. It will at least lead to further stable framerates, but it could help reach higher resolutions if advantage is taken of DirectX 12's ability to control how the GPU is used for specific scenes and the new rendering pipeline features are as solid as they appear.
Just be aware Xbox fans, the next-iteration of OpenGL will undoubtedly offer similar performance enhancements to the PS4. We'll have to wait and see the real-world results of both at GDC this year, but it will be exciting to see the results of these significant advancements.
Are you looking forward to the new graphics APIs? Let us know in the comments.
- » Facebook issues update following cancellation of ‘in-person’ F8 event over coronavirus
- » Block.One posts a $200k reward for whoever can build an Ethereum VM for EOS
- » SoundCloud repairs API-related security snafus after Checkmarx research
- » Ripple’s dev platform Xpring is ‘building bridges’ with Ethereum
- » Raspberry Pi 4 is now OpenGL ES 3.1 conformant, Vulkan incoming