DirectX 12: Console-Level Efficiency On PC

Microsoft DirectX 12 was recently announced at GDC 2014 (Game Developer Conference) with significant fanfare about what it aims to achieve. The hottest news was not so much newfangled visual techniques, but actually a closer-to-metal software design that aims to mirror the efforts AMD's Mantle (or 3DFX's Glide, if you're old enough to remember), reducing the software overhead to improve FPS throughput. Greater CPU threading is also on the table - and about time too! Currently DirectX11 uses little beyond 1 CPU core, whereas DirectX 12 should spread the load more efficiently, utilizing those 4, 6 and 8-core processors in full!

Microsoft demonstrated DirectX 12 running across 4 threads in 3DMark 11

From a PC DIYer's perspective, it's worth noting that all Nvidia DirectX 11 class hardware (GTX 400 series upwards), AMD Graphics Core Next hardware (HD 7000 series upwards) and Intel 4th Generation (Haswell) processors onwards are commited to support DirectX 12, in some form as the whole DX12 API has yet to be finalized.

dx12.cpucompare

To learn more, see these round-ups from GDC:

Microsoft Developer Network Blogs

DirectX 12 introduces the next version of Direct3D, the graphics API at the heart of DirectX.  Direct3D is one of the most critical pieces of a game or game engine, and we’ve redesigned it to be faster and more efficient than ever before.  Direct3D 12 enables richer scenes, more objects, and full utilization of modern GPU hardware.  And it isn’t just for high-end gaming PCs either – Direct3D 12 works across all the Microsoft devices you care about.  From phones and tablets, to laptops and desktops, and, of course, Xbox One, Direct3D 12 is the API you’ve been waiting for.

The Tech Report

At the Game Developers Conference this year, Microsoft pulled back the curtain on Direct3D 12, the first major update to its graphics APIs since 2009. The company announced some pretty big changes, including support for a lower level of abstraction and compatibility with not just Windows, but also Windows Phone and the Xbox One. This will be the first version of Direct3D to unify graphics programming across all of Microsoft's gaming platforms. It may also be the first version of Direct3D to eke significant performance gains out of current hardware.

PC Perspective

I can try to summarize what Microsoft is aiming at with DX12, however.  Essentially the rendering pipeline in DirectX did a lot of the work for engines and applications, but did not exactly do so efficiently.  This high level abstraction of operations allowed for great portability because DX handles a lot of the low level work.  Unfortunately, one of the big issues is that the device driver has to wait for certain operations and state changes to occur before it can complete the current operation and submit more work.