Direct3D feature levels discussion

Updated: I am correctly projecting the right values now. So I'm going to try to make an app of it. Is this something you actually still need Ryan? If so, request some features, I'll see what I can do.


fxlLovv.png


you could do a "modern app" version of it and thus put it in the store ;)
 
you could do a "modern app" version of it and thus put it in the store ;)
lol the beta windows store? Hmm... I should check it out I've never tried to make a windows app, my app was going to be ghetto like, using wm_paint functions lol. I should look into it though, I had my hopes on playing Pillars of Eternity, but I can barely break 20 fps @ 1200p on this machine. Not sure if it's my video card, it's windows 10, or my CPU is just too shitty to be worthwhile anymore.
 
lol the beta windows store? Hmm... I should check it out I've never tried to make a windows app, my app was going to be ghetto like, using wm_paint functions lol. I should look into it though, I had my hopes on playing Pillars of Eternity, but I can barely break 20 fps @ 1200p on this machine. Not sure if it's my video card, it's windows 10, or my CPU is just too shitty to be worthwhile anymore.

Then Kepler is Resource Binding Tier 2?
 
lol the beta windows store? Hmm... I should check it out I've never tried to make a windows app, my app was going to be ghetto like, using wm_paint functions lol. I should look into it though, I had my hopes on playing Pillars of Eternity, but I can barely break 20 fps @ 1200p on this machine. Not sure if it's my video card, it's windows 10, or my CPU is just too shitty to be worthwhile anymore.

seriously you should do it :) .. most of your code will likely "just work" in a UAP (universal App) ...

p.s. most Windows Store apps are "ghetto", if anything it will be a good experience just getting something in there
 
Updated: I am correctly projecting the right values now. So I'm going to try to make an app of it. Is this something you actually still need Ryan? If so, request some features, I'll see what I can do.
I'd certainly appreciate it. It would be a useful tool to have, and not just for myself.

Though for now I'd suggest distributing it as a standard CLI application. WinStore apps are unpleasant to sideload.
 
Ill look over the API and see what's going on. I'll make a standard binary :) I can't guarantee I can output it to XML, I've never attempted it in C before. etc. I'll try copying values to clipboard or something. it's going to look like MS paint though lol. But I am fairly positive that I used the hardware driver type and not reference. I'll check when I get home from work
 
Last edited:
Then Kepler is Resource Binding Tier 2?
It's still showing resource binding tier 2 on Kepler?

Yes, Tier 2. It seems like Max McMullen's account on Resource Binding limits is the most authoritative one.
Maybe someone would actually go and write the code to test the number of UAV slots that is possible to create on Kepler/Maxwell and GCN...

you could do a "modern app" version of it and thus put it in the store ;)
most of your code will likely "just work" in a UAP (universal App)
Ill look over the API and see what's going on. I'll make a standard binary
I'd just wait for Microsoft to update the DirectX Caps Viewer... one thing is to spend a few hours on a five-line program then post a screenshot from the visual debugger, another is to attach a full-featured UI, DXGI adapter enumeration, and clipboard copy/paste... XML-based UAP would be the most effortless though, if it weren't for Store packaging requirements.
 
Yes, Tier 2. It seems like Max McMullen's account on Resource Binding limits is the most authoritative one.
Maybe someone would actually go and write the code to test the number of UAV slots that is possible to create on Kepler/Maxwell and GCN...




I'd just wait for Microsoft to update the DirectX Caps Viewer... one thing is to spend a few hours on a five-line program then post a screenshot from the visual debugger, another is to attach a full-featured UI, DXGI adapter enumeration, and clipboard copy/paste... XML-based UAP would be the most effortless though, if it weren't for Store packaging requirements.
I'll give this somewhat of a shot. This was actually more fun than I expected. If they don't release a new DirectX Caps viewer for a long time, what will the world do ? ;)
 
It looks like GCN 1.1/1.2 and Xbox One do support feature level 12_0 - i.e. at least Resource Binding Tier 2, Tiled Resources Tier 2, and Typed UAV Load with additional formats !


Here are the options reported on my Radeon 290X with the latest WDDM 2.0 driver 15.200.1012.2:

D3D12OPTIONS.png

No support for Tiled Resources under Direct3D12 for some reason, however DxCapsView report under Direct3D 11.3 is bit-to-bit identical to the one posted above by Ryan and shows Tiled Resources Tier 2.


Source code is attached for anyone who already has Windows 10 preview with a D3D12-capable card and wants to play with SDK VS2015 CTP6. Absolutely no UI, you have to use the debugger.
 

Attachments

  • D3D12CheckFeatureSupport.txt
    1.3 KB · Views: 22
Last edited:
It looks like GCN 1.1/1.2 and Xbox One do support feature level 12_0 - i.e. Resource Binding Tier 3, Tiled Resources Tier 2, and Typed UAV Load with additional formats !


Here are the options reported on my Radeon 290X with the latest WDDM 2.0 driver 15.200.1012.2:

View attachment 614

No support for Tiled Resources under Direct3D12 for some reason, however DxCapsView report under Direct3D 11.3 is bit-to-bit identical to the one posted above by Ryan and shows Tiled Resources Tier 2.


Source code is attached for anyone who already has Windows 10 preview with a D3D12-capable card and wants to play with SDK VS2015 CTP6. Absolutely no UI, you have to use the debugger.
Be warned that if you do install the SDK tools update 10.0.10041.0, you will have to search HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders and manually remove all subkeys that include "10.0.10030.0", or you will have linker errors.
I'm wondering if just to make sure you're not hitting any possible bugs. You may want to initialize to 0 and also, have you tried running 11_0 instead of 10_0?
 
You may want to initialize to 0 and also, have you tried running 11_0 instead of 10_0?
There's no need to initialize the options structure, it's completely overwritten with the call... if you move cursor to D3D12_FEATURE_DATA_D3D12_OPTIONS and hit Alt+F12 (Peek Definition), every member is declared as "Out".

There is no difference if I create the device with levels 9_1, 10_0 or 11_1. Since the Direct3D12 runtime works on Direct3D 11-class hardware on the PC, the lower feature layers run through the same DDI 10/11/12 just like the higher layers, unlike Direct3D 11 which can run through DDI9.
 
Okay that's fair. I guess at this point then it's just reporting the 290x incorrectly then.
 
It's not an error (anymore), it coun queue engines, not how many queues they can handle

French article said GCN 1.1 has up to 8 ACE's per 8 queues = 64 + CP = 65 compute
http://www.hardware.fr/news/14133/gdc-d3d12-amd-parle-gains-gpu.html

If you want to refer to the queue engine is the correct data:
AMD GCN 1.2 (285) 1 Graphics + 8 Compute / 8 Compute
AMD GCN 1.1 (290 Series) 1 Graphics + 8 Compute / 8 Compute
AMD GCN 1.1 (260 Series) 1 Graphics + 8 Compute /8 Compute
AMD GCN 1.0 (7000/200 Series) 1 Graphics + 2 Compute / 2 Compute
NVIDIA Maxwell 2 (900 Series) 1 Graphics + 1 Compute / 1 Compute
NVIDIA Maxwell 1 (750 Series) 1 Graphics / 1 Compute
NVIDIA Kepler GK110 (780/Titan) 1 Graphics / 1 Compute
NVIDIA Kepler GK10x (600/700 Series) 1 Graphics / 1 Compute

Nvidia's 32 queues based on one CP = MPS for Hyper-Q = 1 queue engine
https://docs.nvidia.com/deploy/pdf/CUDA_Multi_Process_Service_Overview.pdf
http://docs.nvidia.com/cuda/samples/6_Advanced/simpleHyperQ/doc/HyperQ.pdf
 
AMD is also pushing ACE’s as a major feature for its LiquidVR platform — a fundamental capability that it claims will give Radeon cards an edge over their Nvidia counterparts. We’ll need to see final hardware and drivers before making any such conclusions, of course, but the compute capabilities of the company’s cards are well established. It’s worth noting that while AMD did have an advantage in this area over Kepler, which had only one compute and one graphics pipeline, Maxwell has one graphics pipeline and 32 compute pipes, compared to just 8 AMD ACEs. Whether this impacts performance or not in shipping titles is something we’ll only be able to answer once DX12 games that specifically use these features are in-market.

The question, from the end-user perspective, obviously boils down to which company is going to offer better performance (or price/performance ratio) in the next-generation DX12 API. It’s far too early to make a determination on that front — recent 3DMark 12 benchmarks put AMD’s R9 290X out in front of Nvidia’s GTX 980, while Star Swarm results from earlier this year reversed that result.
http://www.extremetech.com/gaming/2...-into-amd-gpus-thanks-to-asynchronous-compute
 
Nvidia has 32 ACE-equivalent front end processors?
No. I must stress that I don't actually know this for sure, but it probably has front end with 32 "engines" total which of 1 can run compute or gfx and the rest only compute, the "engines", however, are limited to 1 queue each, while ACE's can do 8 queues each and gfx queue, done by separate unit, doesn't eat their slots. So their frontend is "equal" to 4 ACE's more or less.
 
Back
Top