Direct3D feature levels discussion

Compute-only :?:
That's what they say in the Direct3D SDK headers.

So, DirectML is making some progress? D:
DirectML would use metacommands (vendor-specific implementations of standard machine learning subroutines), not just HLSL compute shaders:
https://developer.nvidia.com/using-ai-slide
https://www.highperformancegraphics.org/wp-content/uploads/2018/Hot3D/HPG2018_DirectML.pdf


I guess it's rather about re-aligning the feature levels to a new 12_1 baseline - though it's hard to project how the new levels would be structured, but that particular level is obviously targeted at Radeon Instinct MI and similar cards with no monitor output.
 
Last edited:
hmmm
VariableShadingRateTier : D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED (0)

Is this under 6_5 or 6_4?
Surprised this didn't catch my eye earlier.
 
Nvidia Turing Architecture [2018], #20
https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/
Variable Rate Shading (VRS)
VRS allows developers to control shading rate dynamically, shading as little as once per sixteen pixels or as often as eight times per pixel. The application specifies shading rate using a combination of a shading-rate surface and a per-primitive (triangle) value. VRS is a very powerful tool that allows developers to shade more efficiently, reducing work in regions of the screen where full resolution shading would not give any visible image quality benefit, and therefore improving frame rate. Several classes of VRS-based algorithms have already been identified, which can vary shading work based on content level of detail (Content Adaptive Shading), rate of content motion (Motion Adaptive Shading), and for VR applications, lens resolution and eye position (Foveated Rendering).
 
The Radeon VII with Vega 20 GPU:

Windows 10 version 1809 (build 17763.292 rs5_release) x64

ADAPTER 0
"AMD Radeon VII"
VEN_1002, DEV_66AF, SUBSYS_081E1002, REV_C1
Dedicated video memory : 16311.8 MB (17104207872 bytes)
Total video memory : 32632.5 MB (34217605120 bytes)
Video driver version : 25.20.15015.2003
Maximum feature level : D3D_FEATURE_LEVEL_12_1 (0xc100)
DoublePrecisionFloatShaderOps : 1
OutputMergerLogicOp : 1
MinPrecisionSupport : D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT (2) (0b0000'0010)
TiledResourcesTier : D3D12_TILED_RESOURCES_TIER_3 (3)
ResourceBindingTier : D3D12_RESOURCE_BINDING_TIER_3 (3)
PSSpecifiedStencilRefSupported : 1
TypedUAVLoadAdditionalFormats : 1
ROVsSupported : 1
ConservativeRasterizationTier : D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 (3)
StandardSwizzle64KBSupported : 0
CrossNodeSharingTier : D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED (0)
CrossAdapterRowMajorTextureSupported : 0
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation : 1
ResourceHeapTier : D3D12_RESOURCE_HEAP_TIER_2 (2)
MaxGPUVirtualAddressBitsPerResource : 44
MaxGPUVirtualAddressBitsPerProcess : 44
Adapter Node 0: TileBasedRenderer: 0, UMA: 0, CacheCoherentUMA: 0, IsolatedMMU: 1, HeapSerializationTier: 0, ProtectedResourceSession.Support: 0
HighestShaderModel : D3D12_SHADER_MODEL_6_3 (0x0063)
WaveOps : 1
WaveLaneCountMin : 64
WaveLaneCountMax : 64
TotalLaneCount : 3840
ExpandedComputeResourceStates : 1
Int64ShaderOps : 1
RootSignature.HighestVersion : D3D_ROOT_SIGNATURE_VERSION_1_1 (2)
DepthBoundsTestSupported : 1
ProgrammableSamplePositionsTier : D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 (2)
ShaderCache.SupportFlags : D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO | LIBRARY | AUTOMATIC_INPROC_CACHE | AUTOMATIC_DISK_CACHE (15) (0b0000'1111)
CopyQueueTimestampQueriesSupported : 0
CastingFullyTypedFormatSupported : 1
WriteBufferImmediateSupportFlags : D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT | BUNDLE | COMPUTE | COPY (15) (0b0000'1111)
ViewInstancingTier : D3D12_VIEW_INSTANCING_TIER_1 (1)
BarycentricsSupported : 0
ExistingHeaps.Supported : 1
MSAA64KBAlignedTextureSupported : 1
SharedResourceCompatibilityTier : D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 (1)
Native16BitShaderOpsSupported : 1
AtomicShaderInstructions : 0
SRVOnlyTiledResourceTier3 : 1
RenderPassesTier : D3D12_RENDER_PASS_TIER_0 (0)
RaytracingTier : D3D12_RAYTRACING_TIER_NOT_SUPPORTED (0)
 
VRS -Variable Rate Shading-, new DirectX 12 technology that allows developers to run games about 20% faster.

Look at the image below and try to discern which of the two parts has better quality. We haven't got it, and that's good, because the quality difference is achieved by a special Microsoft rendering technique that improves performance
"It's a new API that offers developers the ability to use GPU more efficiently."

"For each pixel on the screen, the shaders calculate the color that should assigned. The shader rate corresponds to the resolution in which they are loaded (which is different from the general resolution). A higher rate implies higher visual quality, but a higher GPU load; Lower shade rate, the opposite: lower visual quality and lower GPU load. "​

https://devblogs.microsoft.com/directx/variable-rate-shading-a-scalpel-in-a-world-of-sledgehammers/

Tier1-Default-side-by-side-no-labels.png
 
Cool. Tier 1 is effectively variable resolution but local to objects/surfaces instead of the whole screen. The water is shaded quarter resolution. Tier 2 uses a delta mask, so areas of low delta where it won't be noticeable are rendered lower resolution, so a form of delta compression on workload if you will. Every game should get this as it means free performance.

VRS-Tier-2-ssimage.png
 
Using what method? If you select where to apply it correctly, the difference shouldn't be noticeable. Although any game filling the screen with high quality textures is going to have little room for optimisation I supposes. There's a 14% gain for Civilization simply because 2/3's of the screen is water. If there wasn't such a large expanse of low detail, the saving would either be a lot less, or the fidelity will suffer. So perhaps in real-world games its going to have little impact? :(
 
Using what method? If you select where to apply it correctly, the difference shouldn't be noticeable. Although any game filling the screen with high quality textures is going to have little room for optimisation I supposes. There's a 14% gain for Civilization simply because 2/3's of the screen is water. If there wasn't such a large expanse of low detail, the saving would either be a lot less, or the fidelity will suffer. So perhaps in real-world games its going to have little impact? :(
They worked on it with NVIDIA, it's Turing exclusive feature in Wolfenstein, so should be whatever method NVIDIA saw best
 
They worked on it with NVIDIA, it's Turing exclusive feature in Wolfenstein, so should be whatever method NVIDIA saw best
does that method have something to do with DirectX 12 or is it an entirely new thing? Because I am not sure what is the technique you are mentioning.
 
Wolfenstein uses a Delta mask of sorts. The heuristics seem to be based on visual output of past frame if I had understood it correctly.
 
GCN3 (R3 380X) under 1903

Code:
Direct3D 12 feature checker (December 2018) by DmitryKo (x64)
https://forum.beyond3d.com/posts/1840641/

Windows 10 version 1903 (build 18362.116 19h1_release) x64

ADAPTER 0
"AMD Radeon (TM) R9 380 Series"
VEN_1002, DEV_6938, SUBSYS_E308174B, REV_F1
Dedicated video memory : 4071.4 MB (4269203456 bytes)
Total video memory : 12230.1 MB (12824170496 bytes)
Video driver version : 26.20.11015.1003
Maximum feature level : D3D_FEATURE_LEVEL_12_0 (0xc000)
DoublePrecisionFloatShaderOps : 1
OutputMergerLogicOp : 1
MinPrecisionSupport : D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE (0) (0b0000'0000)
TiledResourcesTier : D3D12_TILED_RESOURCES_TIER_2 (2)
ResourceBindingTier : D3D12_RESOURCE_BINDING_TIER_3 (3)
PSSpecifiedStencilRefSupported : 1
TypedUAVLoadAdditionalFormats : 1
ROVsSupported : 0
ConservativeRasterizationTier : D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED (0)
StandardSwizzle64KBSupported : 0
CrossNodeSharingTier : D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED (0)
CrossAdapterRowMajorTextureSupported : 0
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation : 1
ResourceHeapTier : D3D12_RESOURCE_HEAP_TIER_2 (2)
MaxGPUVirtualAddressBitsPerResource : 40
MaxGPUVirtualAddressBitsPerProcess : 40
Adapter Node 0:     TileBasedRenderer: 0, UMA: 0, CacheCoherentUMA: 0, IsolatedMMU: 1, HeapSerializationTier: 0, ProtectedResourceSession.Support: 0
HighestShaderModel : D3D12_SHADER_MODEL_6_4 (0x0064)
WaveOps : 1
WaveLaneCountMin : 64
WaveLaneCountMax : 64
TotalLaneCount : 2048
ExpandedComputeResourceStates : 1
Int64ShaderOps : 1
RootSignature.HighestVersion : D3D_ROOT_SIGNATURE_VERSION_1_1 (2)
DepthBoundsTestSupported : 1
ProgrammableSamplePositionsTier : D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 (2)
ShaderCache.SupportFlags : D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO | LIBRARY | AUTOMATIC_INPROC_CACHE | AUTOMATIC_DISK_CACHE (15) (0b0000'1111)
CopyQueueTimestampQueriesSupported : 1
CastingFullyTypedFormatSupported : 1
WriteBufferImmediateSupportFlags : D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT | BUNDLE | COMPUTE | COPY (15) (0b0000'1111)
ViewInstancingTier : D3D12_VIEW_INSTANCING_TIER_1 (1)
BarycentricsSupported : 0
ExistingHeaps.Supported : 1
MSAA64KBAlignedTextureSupported : 1
SharedResourceCompatibilityTier : D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 (1)
Native16BitShaderOpsSupported : 0
AtomicShaderInstructions : 0
SRVOnlyTiledResourceTier3 : 0
RenderPassesTier : D3D12_RENDER_PASS_TIER_0 (0)
RaytracingTier : D3D12_RAYTRACING_TIER_NOT_SUPPORTED (0)
AdditionalShadingRatesSupported : 0
PerPrimitiveShadingRateSupportedWithViewportIndexing : 0
VariableShadingRateTier : D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED (0)
ShadingRateImageTileSize : 0
BackgroundProcessingSupported : 0
Metacommands enumerated : 4
Metacommands : Conv (Convolution), Conv (Convolution), GEMM (General matrix multiply), GEMM (General matrix multiply)
Nothing new except for SM 6.4 and some basics metacommands...
 
I also tried running the feature checker tool on Win10 1903, Nvidia Kepler, but it just results in the usual Windows message about the exe has stopped working, before it's finished.

It does say "BackgroundProcessingSupported: 1" though, as well as Shader Model 6.4
 
Back
Top