This week at Build, Microsoft unveiled their new graphics stack, DirectX 12, which was demonstrated to more than double performance on existing hardware and work on all Microsoft platforms.
Earlier this year, AMD's new Mantle platform demonstrated what was possible if the graphics stack could effectively utilize all the cores on modern CPUs. The result was a massive boost in performance in Mantle enabled games with very little developer effort as shown by Oxide Games and Battlefield 4. The challenge for AMD is that Mantle is currently PC only and restricted to recent AMD video cards. If only there was a graphics stack that supported multi-core processing that worked on all video cards...
Xbox One gets a major upgrade
Meanwhile, Microsoft's Xbox One has been well received but has been criticized for being measurably behind Sony's Playstation 4 in terms of game performance. Microsoft has responded with DirectX 12. With relatively little effort by developers, upcoming Xbox One games, PC Games and Windows Phone games will see a doubling in graphics performance.
Suddenly, that Xbox One game that struggled at 720p will be able to reach fantastic performance at 1080p. For developers, this is a game changer.
The Secret Sauce
Microsoft was able to achieve the performance breakthroughs through two major changes to DirectX 12:
- Parallel rendering
Most of the performance gain is a result of DirectX 12 making full use of multiple CPU cores. For example, on DirectX 11 a typical game would perform like this:
As you can see, thread 0 (the starting thread for the game) is doing most of the work. In fact, DirectX 11 is barely being utilized by the other threads.
But on DirectX 12, the situation changes dramatically:
Not only is DirectX 12 more efficient in its own right but the interaction with the GPU is evenly spread between each CPU core.
The results are spectacular. Not just in theory but in practice (full disclosure: I am involved with the Star Swarm demo which makes use of this kind of technology.) While each generation of video card struggles to gain substantial performance over the previous generation, here, the same hardware will suddenly see a doubling of performance.
XBox One is the biggest beneficiary; it effectively gives every Xbox One owner a new GPU that is twice as fast as the old one.
No free lunch
There is a downside for all this power. DirectX 12 games will be the first games to fully utilize the powerful graphics cards gamers have been buying for the past few years. DirectX 12 won't require a new video card for GPUs that already support DirectX 11. As a result, that GPU will be getting pushed twice as hard as it previously was which means more heat on cards that might have only barely been cool enough when they were only being commanded by a single CPU core. We expect to see many marginal video cards setup to experience over heating issues as DirectX 12 suddenly pushes these cards beyond what the IHV had anticipated.
In addition, while DirectX 11 was a relatively plug and play experience for developers, DirectX 12 puts a much greater emphasis on developer control. Developers can and are expected to manage conflicts and low level pipelining to make the most of the new platform. This is a good thing for experienced graphics developers but will put less experienced developers at a disadvantage.
Not content to merely double performance, Microsoft also announced that they were going to make DirectX 12 available on Xbox One, Windows Phone and Windows PC. This means a single graphics API for multiple platforms. In addition, Microsoft indicated that they were making DirectX 12 their go-to solution for all graphics intensive tasks -- not just games.
Microsoft hasn't provided a release date for DirectX 12 but we expect to hear more at E3 this Spring.