Direct3D feature levels discussion

Try to run the logger of DmitryKo. It could be just a driver glitch, ie AMD forgot to set the correct caps-bit in the driver, but there are not any exotic features in FL 12_0 that are not currently supported by GCN 1.1/1.2
 
Try to run the logger of DmitryKo. It could be just a driver glitch, ie AMD forgot to set the correct caps-bit in the driver, but there are not any exotic features in FL 12_0 that are not currently supported by GCN 1.1/1.2

Yeah I used that, it spits out feature level 12_0 for my R9 290.

Don't know why Dxdiag wouldn't show it. Not that it matters anyway. The bulk of future DX12 games will still use FL11_0 with the DX12 API overhead reduction.
 
The bulk of future DX12 games will still use FL11_0 with the DX12 API overhead reduction.
DX12 baseline is not just about CPU side API overhead reduction. FL11_0 in DX12 exposes some important GPU features that were not exposed by DX11 FL11_0, such as asynchronous compute, executeIndirect, GS bypass and tiled resources (tier 1). This guarantees that these features will be widely used in future games.
 
Somebody please remind me again what the different DX11 feature levels entail. DX11_0 and 11_1 are hardware, while 11_2 and 11_3 are only software levels, correct?
 
Somebody please remind me again what the different DX11 feature levels entail. DX11_0 and 11_1 are hardware, while 11_2 and 11_3 are only software levels, correct?
11_2 and 11_3 feature levels do not exist. Feature levels are 11_0, 11_1, 12_0 and 12_1. DirectX 11.2 API doesn't add a new feature level, it adds new API level features (such as constant buffer partial update/bindings) and some optional hardware features (such as min/max filtering and tiled resources). DirectX 11.3 API adds support to FL12_0 and FL12_1 hardware, among some other API level features present in DirectX 12 API such as GS bypass. DirectX 11.3 doesn't add support for asynchronous compute and executeIndirect. These GPU features need DirectX 12 API.
 
11_2 and 11_3 feature levels do not exist. Feature levels are 11_0, 11_1, 12_0 and 12_1. DirectX 11.2 API doesn't add a new feature level, it adds new API level features (such as constant buffer partial update/bindings) and some optional hardware features (such as min/max filtering and tiled resources). DirectX 11.3 API adds support to FL12_0 and FL12_1 hardware, among some other API level features present in DirectX 12 API such as GS bypass. DirectX 11.3 doesn't add support for asynchronous compute and executeIndirect. These GPU features need DirectX 12 API.

Thanks a bunch. All confusion has been eliminated.... I think.
 
DX 12_1, per the link. I believe 11.2, 11.3. (with a period) refer to the runtime. Feature levels use an underscore, ie 11_1, 12_0, 12_1).
 
Last edited by a moderator:
DxDiag reports both 12.0 and 12.1 support for my 970
You have a Maxwell-2 card - can you please run my tool and see what maximum feature level does it report on the "Direct3D 11.3" line?
https://forum.beyond3d.com/posts/1840641/

So is this a glitch, or has AMD not implemented feature level 12_0 in it's drivers yet?
Again, the AMD Catalyst driver supports level 12_0 under Direct3D 12 on GCN 1.1/1.2 (i.e. GCN2/GCN3) GPUs, but under Direct3D 11.3 the Catalyst reports maximum feature level 11_1.
The same goes for WARP 12 (Microsoft Basic Render Driver) from the Windows 10 SDK - maximum level 12_0 under Direct3D 12, maximum level 11_1 under Direct3D 11.3.
Don't know why Dxdiag wouldn't show it..
DxDiag has been with us since DirectX 7, it's a legacy tool that doesn't offer a lot of meaningful information in DirectX 11...
 
Last edited:
You have a Maxwell-2 card - can you please run my tool and see what maximum feature level does it report on the "Direct3D 11.3" line?

Sure, this is what i got
ADAPTER 0
"NVIDIA GeForce GTX 970"
VEN_10DE, DEV_13C2, SUBSYS_367A1458, REV_A1
Dedicated video memory : 3221225472 bytes
Total video memory : 4294901760 bytes
Maximum feature level : D3D_FEATURE_LEVEL_12_1 (0xc100)
DoublePrecisionFloatShaderOps : 1
OutputMergerLogicOp : 1
MinPrecisionSupport : D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE (0)
TiledResourcesTier : D3D12_TILED_RESOURCES_TIER_3 (3)
ResourceBindingTier : D3D12_RESOURCE_BINDING_TIER_2 (2)
PSSpecifiedStencilRefSupported : 0
TypedUAVLoadAdditionalFormats : 1
ROVsSupported : 1
ConservativeRasterizationTier : D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 (1)
StandardSwizzle64KBSupported : 0
CrossNodeSharingTier : D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED (0)
CrossAdapterRowMajorTextureSupported : 0
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation : 0
ResourceHeapTier : D3D12_RESOURCE_HEAP_TIER_1 (1)
MaxGPUVirtualAddressBitsPerResource : 40
MaxGPUVirtualAddressBitsPerProcess : 40
Adapter Node 0: TileBasedRenderer: 0, UMA: 0, CacheCoherentUMA: 0

Didn't see anything about support for 11.3
 
Hello.

I have been collecting information around the web on Dx12/d3d12 feature levels. This thread has been really helpful to awsner most of the questions on that subject.
I want to create a table that better explains the GPU/dx12 features to the ordinary fool .

9x8vxkx.png

I would really appreciate any help on what could be done/added/removed to make things more clear.
 
Downloaded again, ran the July zip again nothing about 11.3
ADAPTER 0
"NVIDIA GeForce GTX 970"
VEN_10DE, DEV_13C2, SUBSYS_367A1458, REV_A1
Dedicated video memory : 3221225472 bytes
Total video memory : 4294901760 bytes
Maximum feature level : D3D_FEATURE_LEVEL_12_1 (0xc100)
DoublePrecisionFloatShaderOps : 1
OutputMergerLogicOp : 1
MinPrecisionSupport : D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE (0)
TiledResourcesTier : D3D12_TILED_RESOURCES_TIER_3 (3)
ResourceBindingTier : D3D12_RESOURCE_BINDING_TIER_2 (2)
PSSpecifiedStencilRefSupported : 0
TypedUAVLoadAdditionalFormats : 1
ROVsSupported : 1
ConservativeRasterizationTier : D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 (1)
StandardSwizzle64KBSupported : 0
CrossNodeSharingTier : D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED (0)
CrossAdapterRowMajorTextureSupported : 0
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation : 0
ResourceHeapTier : D3D12_RESOURCE_HEAP_TIER_1 (1)
MaxGPUVirtualAddressBitsPerResource : 40
MaxGPUVirtualAddressBitsPerProcess : 40
Adapter Node 0: TileBasedRenderer: 0, UMA: 0, CacheCoherentUMA: 0

Maybe something to do with Nvidia drivers?
 
Again this asynchronous shader thing -.-

By the way, Maxwell 2.0 has dedicated compute engine like all GCN GPUs, this means that if it is possible, compute shaders are executed in parallel and not always serialized by the driver.

Resource heap also has only two tiers so, and nothing to worry about.

Downloaded again, ran the July zip again nothing about 11.3


Maybe something to do with Nvidia drivers?
Direct3D 11.3 is not a high priority feature, nor AMD drivers fully support it (PS stencil reference is currently unavailable on AMD GPUs on D3D 11.3).

VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation should be supported by all Maxwell 2.0 GPUs and GCNs, dunno if they forget to set the driver cap bit or whatever..
 
Downloaded again, ran the July zip again nothing about 11.3
Sorry, I forgot that I made the code output Direct3D 11.3 maximum feature level only when it differs from the Direct3D 12 level!

Since AMD Catalyst and WARP only report level 11_1 under Direct3D 11.3, it shows on a separate line hinting that the feature levels do not match.


So, NVidia drivers do report feature levels 12_1 and 12_0 under Direct3D 11.3.

Not sure what practical difference does it make for anything but DxDiag screenshots, since every mandatory feature on 12_x levels is also an option for levels 11_0+ (with the exception of resource binding, which is a Direct3D 12 feature).
 
Last edited:
Again this asynchronous shader thing -.-

By the way, Maxwell 2.0 has dedicated compute engine like all GCN GPUs, this means that if it is possible, compute shaders are executed in parallel and not always serialized by the driver.

Resource heap also has only two tiers so, and nothing to worry about.

Im sorry.
I did read your previous comments on that, removed the shaders thing and also the cross node sharing entry.

Did I got it right now ?

V9SHhKy.png

TA9VGEJ.png
 
Back
Top