And the day has finally come. Despite the fact that AMD's Roy Taylor told us a year ago that there is no such thing as DirectX 12, Microsoft has announced its next generation API.
DirectX 12 is in many ways a completely different concept then the transition we saw when changed from DirectX 10 to DirectX 11. DirectX 12 is more about getting your PC closer to the metal. If you think that Microsoft is not first with this concept and you have AMD's Mantle in mind, you got two and two together. This is exactly what AMD did with its Mantle API.
DirectX 12 runs on existing hardware
The weird part is that DirectX 12 doesn’t require new hardware and that it will work on existing GPUs. Nvidia told us last night that both Kepler and Fermi based cards will be DirectX 12 compatible, as well as Maxwell cards. AMD has confirmed that all Graphics Core Next (GCN) cards and GCN-based iGPUs in its APUs will also support DirectX 12.
This is surprising, as DirectX 11 required new hardware and brought a lot of hardware specific optimisations and features.
DirectX 12 is software that gets your PC closer to the graphics metal layer and thus significantly improves multithread scaling and CPU utilization. In Microsoft's own words "it provides a lower level of hardware abstraction than ever before, allowing games to significantly improve multithread scaling and CPU utilization "
Microsoft spent quite a bit of time answering a question it asked itself on the official developer blog, - is this marketing spin?
"We (the product team) read the comments on twitter and game development/gamer forums and many of you have asked if this is real or if our marketing department suddenly received a budget infusion. Everything you are reading is coming directly from the team who has brought you almost 20 years of DirectX," said Microsoft. It is the official answer and we dare not comment.
Microsoft also tells end users that if you buy a new PC with graphics hardware (in over 80% of gamer PCs currently being sold), you’ll be able to enjoy all the power of DirectX 12 games as soon as they are available.
Coming 18 months from now
The date for the launch of DX12 games is 2015 holiday season, which is some year and a half from today and just think about how much vitriol was directed at AMD and DICE direction for delaying Mantle for just a few weeks.
Microsoft did show that in 3Dmark 2011 it has 50% improvement in CPU utilization, and better distribution of work among threads. It showcased a few screenshots and scores to prove that CPU utilisation went dramatically down on alpha DirectX 12 software.
Direct 3D 12, DirectX 12 scores 0.003,208 ms CPU time
Direct 3D 11, DirectX 11 scores 0.006,602 ms CPU time
Microsoft talks about DirectX 12 Forza Motorsport 5 Tech Demo and they claim that they managed to get console-level efficiency on PC. By porting their Xbox One Direct3D 11.X core rendering engine to use Direct3D 12 on PC, Turn 10 was able to bring that console-level efficiency to their PC tech demo that runs Nvidia Titan Black.
We cannot shake the feeling that despite the fact that DirectX 12 will generally make your existing hardware faster, provided compatible games show up on time, so in essence Direct3D 12 really reminds us of Mantle. The fact that it will ship with games some 18 months from today doesn’t help, as Mantle is available today on at least few games and shows a real world performance increase. In the long run, DirectX 12 has a bright future, but that future is 18+ months away, whereas Mantle is here now, although there aren't that many games that support it, at least not for the time being.
If you want to get a bit more details about pipeline state objects, command lists and bundles, descriptor heaps and tables and more geeky details about DirectX 12, you can read the official blog here.