During Build Microsoft had a series of livestreamed talks about DirectX 12, and the one starring Development Director Ales Holecek was particularly interesting, as it gave a few more details on the API, and even made a comparison with AMD’s Mantle.
Holechek explained that the goal is to run on all modern Windows 7 hardware, but of course they’re hoping for their partners at Nvidia, AMD and other vendors to invest with them and build great drivers to support the new API.
He then elaborated a little bit, saying that they’re aware that there’s a huge installed base of machines running Windows 7, and they’re looking at the right way to deliver the DirectX 12 experience to those machines, but there’s still a lot of conversation and feedback gathering going on to decide how exactly to get there.
Holecheck was asked if it’ll be possible for WinRT (Windows Runtime) developers to work with DirectX 12, and the answer was cautiously positive: While “right now the Shape of the APIs that we’re trying to target with DirectX 12 is to remove every ounce of overhead we possibly can, because it’s really about just going down to the metal,” and that causes a bit of a problem in targeting WinRT, as it has a certain amount of overhead, but it’s on the roadmap.
According to Holecheck XNA will be kept up and running, but Microsoft is considering whether to compete with other popular middlewares or not going forward.
We also learn that there are some improvements across the shader popeline with DirectX 12 that will be looked at, but for the moment the focus is on overhead reduction, optimization and pre-compilation, which means that there changes to the shader pipeline won’t be substantial.
Holecek was also asked to comment on the comparison with AMD’s Mantle, and he said that the reach of the API is much wider, since Mantle works only on AMD platforms, while DirectX 12 will work on everything they can put Windows on, and he added some fighting words about the comparison in performance:
From a performance perspective […] pessimistically we’ll be as good, but I’m pretty sure we’ll be better. We’ll do everything we can to be better.
He also added that it’ll be possible to write DirectX 12 universal apps across all devices that support the API
The new API will be a little different from DirextX 11, as for instance it doesn’t do any safeguarding on resource lifetime, so developers are responsible for managing that. They’re given a lot more control and power, but that comes with all of the consequences.
Of course Microsoft is concerned about the learning curve for developers to work on DirectX 12, so they’re trying to “layer the stack” in the right way, so people that want to go “really down to the metal” can do so, but another layer of the API, which will be much simpler to use, is also planned.
In addition to Holecheck’s briefing, two interesting videos were showcased during Direct3D Development Lead Max McMullen’s presentation. The first shows exactly how the “bundles” feature at the heart of DirectX 12 works in conjunction with miltithreading.
The second is an example of the difference in CPU performance with and without the bundles in DirectX 12. The demo shows that rendering of the scene is massively lighter on the CPU with bundles, but very similar framerates are held.