DirectX 12: A first quick look

Today, Microsoft has presented the first information on DirectX 12 at the Game Developers Conference, and also published a blog on DirectX 12. nVidia also responded with a blog on DirectX 12.

In Direct3D 12, the idea of deferred contexts for preparing workloads on other threads/cores is refined a lot further than what Direct3D 11 offered. This should improve the efficiency and reduce the CPU load. Another change is that the state is distributed along even less state objects than before, which should make state calculation for the native GPU even more efficient in the driver.

Other changes include a more lightweight way of binding resources (probably similar to the ‘bindless resources’ that nVidia introduced in OpenGL extensions last year), and dynamic indexing of resources inside shaders. That sounds quite interesting, as it should make new rendering algorithms possible.

And to prove that isn’t just marketing talk, they ported 3DMark from D3D11 to D3D12 in order to demonstrate the improved CPU scaling and utilization. The CPU time was roughly cut in half. Also, this demonstration seems to imply that porting code from D3D11 to D3D12 will not be all that much work.

But most importantly: the API will work on existing hardware! (and apparently it already does, since they demonstrated 3DMark and a demo of Forza Motorsport 5 running under D3D12).

NVIDIA will support the DX12 API on all the DX11-class GPUs it has shipped; these belong to the Fermi, Kepler and Maxwell architectural families.

As an aside, nVidia also paints a more realistic picture about API developments than AMD does with Mantle:

Developers have been asking for a thinner, more efficient API that allows them to control hardware resources more directly. Despite significant efficiency improvements delivered by continuous advancement of existing API implementations, next-generation applications want to extract all possible performance from multi-core systems.

Indeed, it’s not like Direct3D and OpenGL have completely ignored the CPU-overhead problems. But you have to be realistic: Direct3D 11 dates back to 2009, so it was designed for entirely different hardware. You can’t expect an API from 2009 to take full advantage of the CPUs and GPUs in 2014. Microsoft did however introduce multiple contexts in D3D11, allowing for multi-core optimizations.

As nVidia also says:

Our work with Microsoft on DirectX 12 began more than four years ago with discussions about reducing resource overhead.

Which is actually BEFORE we heard anything about Mantle. The strange thing is that AMD actually claimed, less than a year ago, that there would not be a DirectX 12

For the past year, NVIDIA has been working closely with the DirectX team to deliver a working design and implementation of DX12 at GDC.

That’s right, they have a working implementation already. Which would be impossible to pull off if they had just copied Mantle (which itself is not even out of beta yet). There simply would not have been enough time, especially since AMD has not even publicly released any documentation, let alone an SDK.

Sadly, we still have to wait quite a while though:

We are targeting Holiday 2015 games

Although… a preview of DirectX 12 is ‘due out later this year’

Update: AMD also wrote a press release on DirectX 12. Their compatibility only includes all GCN-based cards:

AMD revealed that it will support DirectX® 12 on all AMD Radeon™ GPUs that feature the Graphics Core Next (GCN) architecture.

This entry was posted in Direct3D, Software development, Software news and tagged , , , , , , , , , , , , . Bookmark the permalink.

6 Responses to DirectX 12: A first quick look

  1. k1net1cs says:

    IIRC that implementation was a ported 3DMark to using D3D12 and a working Forza 5 PC tech demo.
    With the 3DMark, the CPU load was more even across all cores by using D3D12.

  2. API says:

    “NVIDIA is currently the only GPU vendor to have a DX12 capable driver in the hands of developers and the demo that Microsoft showed at GDC was running on a GeForce GTX TITAN BLACK card. (UPDATE: I was told that actually Intel has a DX12 capable driver available as well leaving AMD as the only major vendor without.)”

    DX12 caught AMD with their pants down, deer in headlights. Wonder how repi feels, wasting months and years on a dead closed proprietary Glide 2013 API.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s