Direct3D feature levels discussion

The best evidence I can find that all GCN parts support Tier 3 Resource Binding is this forum post:

http://forums.anandtech.com/showthread.php?p=37199507

It's just a post but it does seem to come from a knowledgeable source and later in the thread he does post links to the AMD source material (of which there is too much for me to go through right now).
His reasoning is that because Mantle which (no one has seen and is still under NDA) has a feature called Bindless resources that immediately makes Direct X 12 bindless resources Tier 3. I appreciate the correlation but that doesn't change the fact that DXDIAG is reporting only hardware level features. If AMD considered 64 as 'bindless' then he's flat out wrong - because 64 is a very specific hardware value. What if dxdiag when Tier 3 shows up for 390x shows a different value. Hence why I believe we should not jump to conclusions.

Now, another reason I don't want to trust him as a resource is that later on he mentions that OpenGL and nvidia has been supporting bindless resources as an extension this whole time. Once again, API features and hardware features are not the same. DXDIAG only shows the hardware features! we must not dirty the truth! We should not be sparking an Nvidia vs AMD war over an assumption. 64 is the value stated by DxDiag, we need to report that, and that is labelled as Tier 2. That very specific thread was locked because of what we are about to do (claiming one is Tier 3 and one is Tier 2 vs Tier 2 for both MaxwellV2 and GCN). Except we have the proof sitting out in plain sight this time.
 
Last edited:
I know this might sound annoying, but could you spreadsheet out what we know and see for a buyers guide?
What if different architectures but refreshed like 280x is pitcairn GCN1.0, what if it has Tier 2 tiled resources? I think we need to label what we see. That way people are informed exactly on their card what features they should have.

I've added the FL and some example GPU's in there:

DX%20Feature%20Levels_2.jpg


Resource binding level (as long as it's above Tier 2) doesn't effect FL so at least there's no question around that. I see what you're saying about reporting the resource binding level but every source I can find specifies it as Tier 3 for GCN. Unfortunately non of them are original sources unless anyone can find something here:

http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/

Hopefully one of the resident devs can confirm or reject that point.
 
Last edited:
You could add Fermi to that, same features as Kepler / Maxwell 1

edit: And resource binding tier is 1 for the fermi/kepler/maxwell 1, tier 2 needs more than 8 UAV slots?
 
You could add Fermi to that, same features as Kepler / Maxwell 1

edit: And resource binding tier is 1 for the fermi/kepler/maxwell 1, tier 2 needs more than 8 UAV slots?

Damn, yes that was a symptom of me trying to finish it quickly before I had to go on a call (I'm in work) and thus using copy and paste. Updates incoming!
 
Spreadsheet is perfect so far this is going to be really helpful for a lot of people, and clear up a lot of misinformation out there.

Is there anything else we can obtain from the dxdiag?
 
I believe that executeIndirect and Multi Engines are available to FL11 GPUs
ExecuteIndirect is available on all supported Diret3D 12 hardware (and Intel Asteroid demo shows a dramatic reduction of CPU load if used with fully bindless resources).

Most DX11 GPUs should be FL 12_0 right?
No.

HardOcp claimed at the time GCN 1.1 had DX 11.2 hardware support
PS4 also claimed to be DirectX 11.2+
So wouldn't this make these cards feature level 12_0?

No. We discussed that at the start of the thread. Direct3D 11.2 runtime supports graphics cards down to DX9.0c (through 10level9 which uses DDI9 in the WDDM driver), and yet it doesn't support some features which are only exposed by Direct3D 12 and 11.3. That's all that this slide implies.
 
17% I think. It'd be interestin to understand how many systems that equates to. Then double it to account for the Nvidia market, then add say another 10-15% for the none Steam market (if such a thing exists) and right there you have a rough idea of the size of the "console equivilent PC market".

No need to, my spreadsheet table in the post above has all the necessary data.

As of January 2015 Steam Hardware Survery:
RB tier 3 is supported by 10.57% of all D3D11 cards and 16.7% of D3D12 cards.
RB Tier 2 is 28.03% and 44.29%, Tier 1 is 24.69% and 29.01%.
All D3D11 cards make 76.91% of all GPUs.

Let's put it other way:
All 100% of D3D12 cards can run to RGB tier 1 limits - which is 63.29% of Direct3D11 GPUs, and 76.91% of all GPUs/.
61% are compatible with Tier 2 limits (38.6% of D3D11, 29.68% of all)
16.7% are Tier 3 (10.57% of D3D11, 8.13% of all).
 
We know that (based on 2/15/2015 steam survey) 17% of DX12 market GPUs has RB Tier 3. The initial results from Steam survey which made by random people was based on some initial and likely incorrect assumptions.

It doesn't matter whether the market share reported by Steam is correct or not, this is what Microsoft were basing their numbers on in the GDC talk quoted above.

why should we assume that it shows "64" UAV slots instead of "full heap"?
From all we know, Direct3D 11.x does not support "full heap" i.e. Resourced Binding tiers, it's a Direct3D12 feature and Direct3D 11.3 retains the automatic resource management. Hence DxCapsViewer reports D3D11_1_UAV_SLOT_COUNT which is the maximum defined in the Direct3D 11.2 runtime.

Also, if each stage supports 8 UAVs, then all stages can support support more than 8 if you can run these stages in parallel on different CUs, so it's rather 8 x number of stages.
 
No need to, my spreadsheet table in the post above has all the necessary data.

As of January 2015 Steam Hardware Survery:
RB tier 3 is supported by 10.57% of all D3D11 cards and 16.7% of D3D12 cards.
RB Tier 2 is 28.03% and 44.29%, Tier 1 is 24.69% and 29.01%.
All D3D11 cards make 76.91% of all GPUs.

Let's put it other way:
All 100% of D3D12 cards can run to RGB tier 1 limits - which is 63.29% of Direct3D11 GPUs, and 76.91% of all GPUs/.
61% are compatible with Tier 2 limits (38.6% of D3D11, 29.68% of all)
16.7% are Tier 3 (10.57% of D3D11, 8.13% of all).

Thanks. According to those figures and assuming there are around 100 million PC's in the survey (steam lists on their website that the community is over 100 million strong and I recently heard it quoted at 120 million) then all GCN + Kepler + Maxwell GPU's would make up around 30 million PC's. Given the PS4 was recently reported to have sold 20 million and the XBO is significantly behind, it's no wonder the PC is being treated as a first class platform these days.
 
Thanks. According to those figures and assuming there are around 100 million PC's in the survey (steam lists on their website that the community is over 100 million strong and I recently heard it quoted at 120 million) then all GCN + Kepler + Maxwell GPU's would make up around 30 million PC's. Given the PS4 was recently reported to have sold 20 million and the XBO is significantly behind, it's no wonder the PC is being treated as a first class platform these days.
As per Dmitry's advice, it might be best to cover our bases and place DX11.3 on the top of that spread sheet ;). But luckily one day this will all get sorted out.
 
BTW your list of GCN cards is incomplete - here's my own take on both mobile and desktop parts (not including APUs except Xbox One, which IMHO roughly equals Bonaire Pro)
Oland
(GCN 1.0, 1040 million gates, 90 mm2, 128 bit GDDR5)
PRO 320:20:8 - R5/R7 240
XT 384:24:8 - HD 85xxM-87xxM, R5 M230/255, R7 M260/M260X/M265, R7 250

Cape Verde
(GCN 1.0, 1500 million gates, 123 mm2, 128 bit GDDR5)
LE 384:24:8 - HD 7730, 8730
PRO 512:32:16 - HD 77x0M, 7750
XT 640:40:16 - HD 78x0M, 7770, 88x0M, 8760, R7 M265X/M270/M270X

Bonaire
(GCN 1.1, 2080 million gates, 160 mm2, 128 bit GDDR5)
PRO 768:48:16 - ~Xbox One, R7 260
XT 896:56:16 - HD 7790, 8770, R7 260X

Pitcairn/Curacao
(GCN 1.0, 2800 million gates, 212 mm2, 256 bit GDDR5)
PRO 1024:64:32 - HD 7850, R7 265
XT 1280:80:32 - HD 7970M, 7870, 8970M, 8870 OEM, R9 M290X, R9 270/270X

Tahiti
(GCN 1.0, 4313 million gates, 352 mm2, 384 bit GDDR5)
LE 1536:96:32 256 bit - HD7870 XT
PRO 1792:112:32 - HD 7950, 8950 OEM, R9 280
XT 2048:128:32 - HD 7970, 8970 OEM, R9 280X

Tonga
(GCN 1.2, 5000 million gates, 359 mm2, 256 bit GDDR5)
PRO 1792:112:32 - R9 285
XT 2048:128:32 - R9 M295X

Hawaii
(GCN 1.1, 6200 million gates, 439 mm2, 512 bit GDDR5)
PRO 2560:160:64 - R9 290
XT 2816:176:64 - R9 290X
 
Last edited:
BTW your list of GCN cards is incomplete - here's my own take on both mobile and desktop parts (not including APUs except Xbox One, which IMHO roughly equals Bonaire Pro)

Thanks, yeah I was just giving some common examples rather than a complete list, I didn't want to make the table too big.


The dxcapsviewer screengrabs that Ryan posted on the previous page effectively prove that table wrong.
 
As per Dmitry's advice, it might be best to cover our bases and place DX11.3 on the top of that spread sheet ;). But luckily one day this will all get sorted out.

Yes that seems sensible. I've updated the sheet accordingly. It still shows only what's displayed in dxcapsviewer so is technically accurate but may indeed be deceiving with regards to RB level (but not overall Feature Level) if there is a limitation in reporting with dxcapsviewer 11.3. I can easily produce a version 2 once we have the results of the DX12 dxcapsviewer.
 
FYI ...
Quick test: DirectX 12 API Overhead Benchmark results
If you own a 3DMark 2013 license and have Windows 10 preview build 10041 (free to download and install as it is a public preview) and have a compatible graphics card with DX12 enabled you can now test and see how huge that overhead always has been with 3DMark. Just make sure you update Windows 10 towards build 10041 which has DX12 support. For the graphics card drivers, wait for the Windows update. The Windows driver that install through the update are DX12 class compatible with respective Nvidia and AMD graphics cards.
The difference in increase draw calls is going to be extraordinary positive. Obviously the results are relative to actual complex rendered frames and frame rates. But any old and or new processor will be utilized so much better. In the end the Windows 10 / DX12 combo is going to make a difference alright, yeah we are excited as man. Scene complexity with many more objects is going to rock hard. I mean overall we are looking at a 15 to 20x draw call increase on any mainstream to enthusiast class processor and what that can do with scene complexity will be very impressive. Also this means very good news for AMD and its APUs and FX processors as well as the entry level Intel CPU SKUs.

http://www.guru3d.com/news-story/quick-test-directx-12-api-overhead-benchmark.html
 
LiquidBoy posted this on the other DX12 API thread.
https://onedrive.live.com/?cid=1e3f...v=3&ithint=photo,png&authkey=!AMDq9A7ExwV10pY

I don't have a GCN card =( unfortunately, so I can't test. But the enumerations show that we can retrieve a setting known as Resource Binding Tier 3. I have a 660, so I expect it to return as Tier 1. I'll try writing up an application tonight, should be fairly straight forward if that is the MSDN call for it.
 
The preliminary Direct3D 12 documentation is available.


Hardware tiers for resource binding/descriptor heaps:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn899127(v=vs.85).aspx

FAQ:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn899228(v=vs.85).aspx

Should I port my Direct3D 11 apps to Direct3D 12?

Only if you want to. Direct3D 11 and Direct3D 12 exist side-by-side, and many apps, including games, are well served by the Direct3D 11 API. Direct3D 11 is significantly easier for developers new to GPU programming, and serves as an excellent starting point for learning the basics of Direct3D. The Direct3D 11 API will also receive updates and a new feature level to provide access to new hardware features that are available in Direct3D 12.


D3D11on12
https://msdn.microsoft.com/en-us/library/windows/desktop/dn913195(v=vs.85).aspx
 
Last edited:
The preliminary Direct3D 12 documentation us available.


Hardware tiers for resource binding/descriptor heaps:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn899127(v=vs.85).aspx

Maximum UAVs is now 64 on Tier 1 and unlimited on higher Tiers, so the tables are not valid anymore.

Isn't it the case that we still don't know how many UAV's these GPU's support since the dxcapsviewer screengrabs may be misrepresenting full heap UAV slots as 64? In fact given this new information, we know for a fact it's misrepresenting it for at least Maxwell 2 which is showing 64 slots in dxcapsviewer but we know supports RB tier 2 and therefore MUST be full heap.

So I guess the only question remaining is whether GCN1.0-1.2 are really 64 or also full heap. If 64 then they need to be dropped back down to Tier 1 and thus lose full DX12_0 compliance.
 
Back
Top