D3D12 articles - so much misunderstandings and miscommunications

Status
Not open for further replies.

zlatan

Senior member
Mar 15, 2011
580
291
136
I have read many articles about D3D12 and I think many of these are making more questions than answers. I'm tired of these misunderstandings and miscommunications on the hardware support, so here is a summary about the new API. Please understand that even if I'm posting here anonymously I have to keep some information secret. This post is based on public documentations, and these specs are finalized. Sorry to say but most of the tech journalists are lazy now, and they simply don't even do basic search for their articles.

Here is a simple FAQ:
- Is D3D12 require new hardware?
No! The API will works fine with the existing GPUs if the D3D12 driver exist for them. The actual hardware support already announced.
- What about the features?
Some feature will go, and some feature will come.
The low-level APIs will simplify the access to the hardware. In the past, many new features came to the API because the driver actually hid the GPU memory from the application. So every new thing had to be implemented in the API, and then a new driver introduced the support for it. After this the application can access the new feature. D3D12 will allow explicit access to the GPU memory so some earlier features will not accessible in D3D12 in their "traditional D3D11 form". But this is not a problem, because with explicit memory access all of these (and many more) can be implemented in the application. For example tiled resources will be gone in the actual form, but it is possible to write an own implementation for it.
The resource model will be also advancing, so for example Typed UAV Load will be a new feature.
- Are these new features will require new hardware?
The best answer is yes and no. This is a complicated question, and hard to answer it when the specs are not public. But let's say Typed UAV Load will require hardware support. The GCN based Radeons can support it, as well the Maxwell v2 (GM206/GM204) architecture. Maybe more hardware can access the feature from NVIDIA, but I don't know because they don't disclose what possible with Maxwell v1/Kepler/Fermi. Intel might support it, but I'm not familiar with these iGPUs.
But many of these new features can be... I don't want to say emulated, but some workaround is possible. So even if the hardware support is not present, the actual effect might be executable on all GPUs. Of course, these workarounds will have some performance hit.

These are the most important things to know.

There are some other important things like the binding model. I have read frequently that D3D12 is bindless. No it's not. Bindless is only possible with AMD GCN, and NV Kepler/Maxwell. D3D12 is a universal API, so bindless is not suitable for it. But this doesn't mean that the D3D12 binding model is bad. It's actually very nice.

In this PDF you can see the resource binding tiers at page 39 (if you don't want to download the file than here is an image). This is the D3D12 binding table, and the GPUs must support one of these tiers.
Most of the GPUs support the first tier or TIER1.
Maxwellv2 (GM206 and GM204) support the second tier or TIER2.
All GCN-based Radeons support the third tier or TIER3.
I'm expect that all future hardware will support TIER3.

One more thing. We all know that D3D12 is built for efficiency. Yep, this is true, but Microsoft only talk about the batch performance. Everybody knows the advantages, it will mostly! eliminate the limitations on the CPU side.
There are two other features in D3D12 that will eliminate the limitations on the GPU side! These will help to speed up the rendering even when the application seems to be limited by the GPU.
These optional features are called asynchronous DMA and asynchronous compute. Simple definitions:
- Asynchronous DMA will allow data uploads without pausing the whole pipeline. It will need two active DMA engines in the GPU so this feature is supported by all GCN-based Radeons or Maxwellv2(GM206/GM204)-based GeForce. Most modern NVIDIA GPUs use two DMA engines, but one of these disabled on the GeForce product line, so in the past this was a professional feature. On the GM206/GM204 GPUs the two DMA not just present in the hardware but activated as well.
- Asynchronous compute allow overlapping of compute and graphics workloads. Most GPUs can use this feature, but not all hardware can execute the workloads efficiently. The GCN-based Radeons with 8 ACEs! are very good at this in my own tests.

I can't tell you more, because there is an embargo for some infos.

If you want to ask what GPU is the best for D3D12 at present, than I will say go for a GCN-based Radeon (prefer GPUs with 8 ACEs) or a Maxwellv2(GM206/GM204)-based GeForce. These are the most future-proof architectures now, so these will support a higher resource binding tier and most of the optional D3D12 features.
 
Feb 19, 2009
10,457
10
76
It's interesting that you bring up Asynchronous DMA and Compute because these two features were supposed to be pushed by Mantle but so far, they end up focusing on the CPU side of things only.

It is very clear from reading and presentations that DX12 share many many similarities & identical implementation with Mantle.

This is probably why so many developers signed up for Mantle access, to get a head start on implementing and optimizing for DX12. It's also a strong indicator that once DX12 is widely available, Mantle is pointless and would only take additional resources which AMD lacks to support alongside DX11 & 12.
 

3DVagabond

Lifer
Aug 10, 2009
11,951
204
106
Thanks for the info :thumbsup:

Can you explain any further what is TIER1, TIER2, TIER3 support?
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
In this PDF you can see the resource binding tiers at page 39 (if you don't want to download the file than here is an image). This is the D3D12 binding table, and the GPUs must support one of these tiers.
Most of the GPUs support the first tier or TIER1.
Maxwellv2 (GM206 and GM204) support the second tier or TIER2.
All GCN-based Radeons support the third tier or TIER3.
I'm expect that all future hardware will support TIER3.

Any edvidence for this support? Please provide links/documentation.
 

zlatan

Senior member
Mar 15, 2011
580
291
136
It's interesting that you bring up Asynchronous DMA and Compute because these two features were supposed to be pushed by Mantle but so far, they end up focusing on the CPU side of things only.

It is very clear from reading and presentations that DX12 share many many similarities & identical implementation with Mantle.

This is probably why so many developers signed up for Mantle access, to get a head start on implementing and optimizing for DX12. It's also a strong indicator that once DX12 is widely available, Mantle is pointless and would only take additional resources which AMD lacks to support alongside DX11 & 12.

Mantle will be still good for the "innovators". It's a lower-level API and more robust solution than D3D12. I'm expect it will advance much faster, which will be a critical advantage for some developers.
 

MeldarthX

Golden Member
May 8, 2010
1,026
0
76
It's interesting that you bring up Asynchronous DMA and Compute because these two features were supposed to be pushed by Mantle but so far, they end up focusing on the CPU side of things only.

It is very clear from reading and presentations that DX12 share many many similarities & identical implementation with Mantle.

This is probably why so many developers signed up for Mantle access, to get a head start on implementing and optimizing for DX12. It's also a strong indicator that once DX12 is widely available, Mantle is pointless and would only take additional resources which AMD lacks to support alongside DX11 & 12.

*chuckles* I mean its almost like someone called it; said those exact things and then was hounded and ridiculed for saying it; most said he didn't know what he was talking about.....or he's full of it ;)
 

zlatan

Senior member
Mar 15, 2011
580
291
136
Thanks for the info :thumbsup:

Can you explain any further what is TIER1, TIER2, TIER3 support?

Sure. Every API use a resource binding model but with D3D12 Microsoft have to support a wide range of hardwares. Because these GPUs can be very different they slice the resource binding to three tiers. This is a very good solution because it will allow backward compatibility and future-proof design at the same time.
The application check this at launch. The driver will return with a value so the API will set the resource binding TIER support.
If the application designed to run on TIER1 than no problem, it will works well on every hardware.
If the application designed to run on TIER2, than some effects will be only activated on this level, so these won't run on TIER1 hardwares. But the application will still run without some effects. TIER3 is the same. Some effects won't executable on TIER2 and TIER1.
 

zlatan

Senior member
Mar 15, 2011
580
291
136
Any edvidence for this support? Please provide links/documentation.

No need for these. Just check the return value in D3D12 when the API (and the drivers) available in public.
But if you want more technical detail, than here is it:
NV Fermi: Max UAV is limited to 8 -> TIER1
NV Kepler: Max UAV is limited to 8 -> TIER1
NV Maxwellv1: Max UAV is limited to 8 -> TIER1
NV Maxwellv2: SRVs/stage is limited to 2^20 -> TIER2
Intel Gen7dot5/Gen8: the universal hardware binding table is limited to 255 slot -> TIER1
AMD GCN v1/v2/v3...: GCN is designed to a simplified resource model, so this architecture works more like a CPU than a GPU. This will allow unlimited resource binding -> TIER3
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
- Are these new features will require new hardware?
The best answer is yes and no. [...]
But many of these new features can be... I don't want to say emulated, but some workaround is possible. So even if the hardware support is not present, the actual effect might be executable on all GPUs. Of course, these workarounds will have some performance hit.

This doesnt make sense.
There is a new API/Feature level with 11_3 with support for at least the 4 announced features. If their weren't required in hardware why would there be a new API or feature level?
 
Last edited:
Feb 19, 2009
10,457
10
76
This doesnt make sense.
There is a new API/Feature level with 11_3 with support for at least the 4 announced features. If there weren't required in hardware why would there be a new API or feature level?

Support could be via software emulation. Support doesn't necessarily imply hardware acceleration.

IF DX12 was built upon Mantle as the foundation, I would not be surprised that some features will have to be emulated on NV due to Mantle being built for GCN.

Perhaps this was what some of the developers on Beyond3D & SA forums were hinting to regarding NV's DX12 support and Maxwell.

Wait and see I guess.
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
No need for these. Just check the return value in D3D12 when the API (and the drivers) available in public.
But if you want more technical detail, than here is it:
NV Fermi: Max UAV is limited to 8 -> TIER1
NV Kepler: Max UAV is limited to 8 -> TIER1
NV Maxwellv1: Max UAV is limited to 8 -> TIER1
NV Maxwellv2: SRVs/stage is limited to 2^20 -> TIER2
Intel Gen7dot5/Gen8: the universal hardware binding table is limited to 255 slot -> TIER1
AMD GCN v1/v2/v3...: GCN is designed to a simplified resource model, so this architecture works more like a CPU than a GPU. This will allow unlimited resource binding -> TIER3

So you cant provide any edvidence/documention I guess.
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
Support could be via software emulation. Support doesn't necessarily imply hardware acceleration.

IF DX12 was built upon Mantle as the foundation, I would not be surprised that some features will have to be emulated on NV due to Mantle being built for GCN.

Perhaps this was what some of the developers on Beyond3D & SA forums were hinting to regarding NV's DX12 support and Maxwell.

Wait and see I guess.

DX11 doesnt support the low level part of DX12. But yet there will be a new feature/API level with support for the 4 new features.

Dubbed Direct3D 11.3, this new version of Direct3D is a continuation of the development and evolution of the Direct3D 11 API and like the previous point updates will be adding API support for features found in upcoming hardware.
http://www.anandtech.com/show/8544/microsoft-details-direct3d-113-12-new-features
 
Last edited:

zlatan

Senior member
Mar 15, 2011
580
291
136
This doesnt make sense.
There is a new API/Feature level with 11_3 with support for at least the 4 announced features. If their weren't required in hardware why would there be a new API or feature level?
There is a reason why those features announced for D3D11.3 and not for D3D12. D3D12 not implement all existing or announced features, because the application handle the device memory, so the devs can write their own implementation. The D3D12 driver doesn't even see the memory layout.
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
There is a reason why those features announced for D3D11.3 and not for D3D12. D3D12 not implement all existing or announced features, because the application handle the device memory, so the devs can write their own implementation. The D3D12 driver doesn't even see the memory layout.

They will be introduced to DX12 in the same way:
11.3 & 12: New Features

Getting to the heart of today’s announcement from Microsoft, we have the newly announced features that will be coming to Direct3D 11.3 and 12. It should be noted at this point in time this is not an exhaustive list of all of the new features that we will see, and Microsoft is still working to define a new feature level to go with them (in the interim they will be accessed through cap bits), but none the less this is our first detailed view at what are expected to be the major new features of 11.3/12
http://www.anandtech.com/show/8544/microsoft-details-direct3d-113-12-new-features


The new graphics features included in DX12 will be accessible from either DX11 or DX12, so developers will be free to use the new features with either the DX11 or DX12 APIs. - See more at: http://blogs.nvidia.com/blog/2014/09/19/maxwell-and-dx12-delivered/#sthash.UpsMqgLw.dpuf

These new "Direct3D New Rendering Features" need hardware support.
 

zlatan

Senior member
Mar 15, 2011
580
291
136
2 outdated documents with nothing to do with DX12 and what, find it yourself links?
Those are architecture documents. You can read how the hardware works, than map the information to the D3D12 specs.
Its you making the claims, back it up. Else its nothing but hot air.
I told you here. These are simple facts. If a hardware only have 8 slot for some resource, than it can't support higher tier levels which require more slot. This simple.
 

dacostafilipe

Senior member
Oct 10, 2013
771
244
116
These new "Direct3D New Rendering Features" need hardware support.

They are certainly talking about Nvidia hardware, because Intel does not require new Hardware for Raster Ordered Views, because they already have it (PixelSync).
 

zlatan

Senior member
Mar 15, 2011
580
291
136
sontin: Marketing strikes again.
Ask yourself. Would you buy a new hardware when they say these "new features" are possible with the existing GPUs with some workaround?:awe:

Don't get angry for this but they just want to sell the product. Most of us totally understand why they are doing this. But in the other hand this doesn't mean that we can't write the truth for example here.
 
Last edited:

Pottuvoi

Senior member
Apr 16, 2012
416
2
81
Because, sometimes, Microsoft is slow.

For example, the Tiled resources feature added in DX 11.2 was already possible on AMD hardware with the AMD_sparse_texture OpenGL extension.
There are plenty of things GCN can do, but neither DX11 or OpenGL allow. (one confirmed one is the interpolator access in pixelshader)
Question is will DX12 allow such things and on what hardware and how fragmented will the 'tier' levels be.

Cannot wait for the GDC as we should finally get proper information on subject.
 

zlatan

Senior member
Mar 15, 2011
580
291
136
There are plenty of things GCN can do, but neither DX11 or OpenGL allow. (one confirmed one is the interpolator access in pixelshader)
Oh yes that's an awesome feature. That's why I love PS4, it allow to do some really interesting stuff.:thumbsup:
 
Status
Not open for further replies.