Английская Википедия:Feature levels in Direct3D

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description Feature levels in Direct3D define strict sets of features required by certain versions of the Direct3D API and runtime, as well as additional optional feature levels available within the same API version.

Overview

Шаблон:See also Feature levels encapsulate hardware-specific capabilities that exist on top of common mandatory requirements and features in a particular version of the API. The levels are grouped in strict supersets of each other, so each higher level includes all features required on every lower level.

Some feature levels include previously optional hardware features which are promoted to a mandatory status with new revisions of the API to better expose newer hardware. More advanced features such as new shader models and rendering stages are only exposed on up-level hardware,[1][2] however the hardware is not required to support all of these feature levels[3] and the Direct3D runtime will make the necessary translations.

Feature levels allow developers to unify the rendering pipeline and use a single version of the API on both newer and older hardware, taking advantage of performance and usability improvements in the newer runtime.[4]

Separate capabilities exist to indicate support for specific texture operations and resource formats; these are usually specified per each texture format using a combination of capability flags, but some of these optional features are promoted to mandatory on upper feature levels.[5]

Direct3D 10

Direct3D 10 introduced a fixed set of mandatory requirements for the graphics hardware. Before Direct3D 10, new versions of the API introduced support for new hardware capabilities, however these capabilities were optional and had to be queried with "capability bits" or "caps".

Direct3D 10.1 was the first to use a concept of "feature levels"[1][3][6] to support both Direct3D 10.0 and 10.1 hardware.[3][7][8]

Direct3D 11

Шаблон:Anchor In Direct3D 11, the concept of feature levels has been further expanded to run on most downlevel hardware including Direct3D 9 cards with WDDM drivers.

There are seven feature levels provided by Шаблон:Code structure; levels 9_1, 9_2 and 9_3 (collectively known as Direct3D 10 Level 9) re-encapsulate various features of popular Direct3D 9 cards conforming to Shader Model 2.0, while levels 10_0, 10_1, 11_0 and 11_1 refer to respective versions of the Direct3D API.[1] "10 Level 9" feature levels contain a subset of the Direct3D 10/11 API[9] and require shaders to be written in HLSL conforming to Shader Model 4.0 Шаблон:Code compiler profiles, and not in the actual "shader assembly" language[10] of Shader Model 1.1/2.0; SM 3.0 (Шаблон:Code/Шаблон:Code) has been omitted deliberately in Direct3D 10 Level 9.[3]

Since Direct3D 11.1 for Windows 8, some mandatory features introduced for level 11_1 are available as optional on levels 10_0, 10_1 and 11_0 - these features can be checked individually via CheckFeatureSupport function[11] however feature level 11_1 and optional features are not available in Direct3D 11.1 for Windows 7 platform update[12] because it does not support WDDM 1.2.[13]

Direct3D 11.2 for Windows 8.1 adds optional mappable buffers and optional tiled resources for levels 11_0 and 11_1; these features require WDDM 1.3 drivers.[14]

Direct3D 11.3 for Windows 10 requires WDDM 2.0 drivers; it adds more optional features and levels 12_0 and 12_1 from Direct3D 12.

Direct3D 10 and 11 feature levels
Required features Optional features GPUs supporting as a maximum feature level
Feature level Direct3D runtime Driver model Features Direct3D runtime Driver model Features
9_1 11.0 WDDM 1.0 Shader Model 2.0 (Шаблон:Code/Шаблон:Code), 2K textures, volume textures, event queries, BC1-3 (a.k.a. DXTn), a few other specific capabilities. colspan="3" rowspan="5" Шаблон:N/A Nvidia GeForce FX; Intel GMA 950/3100 (945G/965G/G31/G33 chipset); Tegra 3, Tegra 4
9_2 Occlusion queries, floating-point formats (no blending), extended caps, all 9_1 features. ATI Radeon 9800/9700/9600/9500
9_3 Шаблон:Code/Шаблон:Code with instancing and additional shader caps, 4K textures, multiple render targets (4 MRTs), floating-point blending (limited), all 9_2 features. ATI Radeon X800/X700, X1900/X1800/X1600/X1300; Nvidia GeForce 6, 7 series; Adreno 220/300 series; Mali-T 6xx/720/820/830,[15] Mali-G51; Matrox M-series; Vivante GC2000 series onwards[16]
10_0 10.0 Shader Model 4.0, geometry shader, stream out, alpha-to-coverage, 8K textures, MSAA textures, 2-sided stencil, general render target views, texture arrays, BC4/BC5, full floating-point format support, all 9_3 features. ATI Radeon HD2000 series; Nvidia GeForce 8/9/GTX 200 series; Intel GMA X3500-X4500 (G35/G41/G43/G45 chipset)
10_1 10.1 Shader Model 4.1, cubemap arrays, extended MSAA, all 10_0 features. ATI Radeon HD 3000/4000 series; Nvidia GT 205-240/GT 300 series;

Intel HD Graphics (Arrandale/Clarkdale CPUs), Intel HD Graphics 3000/2000 (Sandy Bridge)

11_0 11.0 WDDM 1.1 Shader Model 5.0, hull & domain shaders, DirectCompute (CS 5.0), 16K textures, BC6H/BC7, extended pixel formats, all 10_1 features. 11.1 WDDM 1.2[11] 10_x: DirectCompute (CS 4.0/CS 4.1), extended pixel formats, logical blend operations.
11_0: UAV only rendering with force sample count, constant buffer offsetting and partial updates, double precision (64-bit) floating point operations, minimum floating point precision (10 or 16 bit).
AMD Radeon HD 5000/6000/7300-7600/8300-8400, R5 210-235 series (Terascale 2), HD 6900 (Terascale 3);

Nvidia GeForce GTX 400/500 series (Fermi);
Intel HD Graphics 4000/2500 (Ivy Bridge)

11.2 WDDM 1.3 11_x: Tiled resources (two tiers), min/max filtering Nvidia GeForce GTX 600/700/Titan series (Kepler), GTX 745/750 series (Maxwell, 1st gen)
11_1 11.1 WDDM 1.2 Logical blend operations, target-independent rasterization, UAVs at every pipeline stage with increased slot count, UAV only rendering with force sample count, constant buffer offsetting and partial updates, all 11_0 features. 11.3 WDDM 2.0 11_x/12_x: Conservative rasterization (three tiers),[17] tiled resources (four tiers), stencil reference value from Pixel Shader, rasterizer ordered views, typed UAV loads for additional formats, UMA/hUMA support[18] Mali-T 760/860/880, Mali-G71/72; Adreno 400 series;

AMD HD 7700-7900/8500-8900, Rx 240/250/265/270/280, Rx 330/340/350/370, R5/R7 400 series (GCN1);
Intel HD Graphics 4200-5200 (7.5 gen, Haswell), 5300-6300 (8 gen, Broadwell)

12_0 11.3 WDDM 2.0 Tiled Resources Tier 2 (Texture2D), Typed UAV Loads (additional formats). AMD HD 7790/8770, Rx 260/290, Rx 360/390, R7 455 series, Xbox One (GCN2), R9 285/380, Fury/Nano series (GCN3), RX 460-480, RX 500 series (GCN4)
12_1 Conservative Rasterization Tier 1, Rasterizer Ordered Views. Adreno 500/600 series;

Nvidia GeForce 900/Titan series (Maxwell, 2nd gen);[19][20][21][22][23] GeForce 10 series (Pascal), GeForce 20 series (Turing);
AMD RX Vega series (GCN5), Radeon RX 5000 series (RDNA);
Intel HD Graphics 510-580 (9 gen, Skylake),[24] 605-620 (9.5 gen, Kaby Lake)

Feature level Direct3D runtime Driver model Features Direct3D runtime Driver model Features GPUs supporting as a maximum feature level
Required features Optional features

Direct3D 12

Direct3D 12 requires graphics hardware conforming to feature levels 11_0 and 11_1 which support virtual memory address translations.[25][26]

There are two new feature levels, 12_0 and 12_1, which include some features that are optional on levels 11_0 and 11_1.[27] Due to the restructuring of the API, some previously optional features are realigned as baseline on levels 11_0 and 11_1.

Direct3D 12 from Windows 10 Anniversary update (version 1607) includes Shader Model 6.0,[28] which requires WDDM 2.1 drivers, and new DXIL compiler based on LLVM.[29] Windows 10 Creators Update versions 1703 and 1709 include Shader Model 6.1 and WDDM 2.2/2.3.

Direct3D 12 feature levels
Level Driver model Required features Optional features GPUs supporting as a maximum feature level
11_0 WDDM 2.0 All mandatory 11_0 features from Direct3D 11, Shader Model 5.1, Resource binding Tier 1.

UAVs at every pipeline stage, UAV only rendering with force sample count, constant buffer offsetting and partial updates.

Resource binding (three tiers), tiled resources (four tiers), conservative rasterization (three tiers), stencil reference value from Pixel Shader, rasterizer ordered views, typed UAV loads for additional formats, UMA/hUMA support, view instancing.

Logical blend operations, double precision (64-bit) floating point operations, minimum floating point precision (10 or 16 bit).

Shader Model 6.0-6.7

Metacommands, variable shading rate, raytracing, mesh shaders, sampler feedback.

Other optional features defined by D3D_FEATURE structures.[30]

Nvidia GeForce GTX 400/500 series (Fermi), GeForce GTX 600/700/Titan series (Kepler), GTX 745/750 series (Maxwell, 1st gen)
11_1 Logical blend operations, target-independent rasterization, increased UAV slot count. Mali-G71/72;

AMD HD 7700-7900/8500-8900, Rx 240/250/265/270/280, Rx 330/340/350/370, R5/R7 400 series (GCN1);
Intel HD Graphics 4200-5200 (7.5 gen, Haswell), 5300-6300 (8 gen, Broadwell)

12_0 WDDM 2.0 Resource Binding Tier 2, Tiled Resources Tier 2 (Texture2D), Typed UAV Loads (additional formats) AMD HD 7790/8770, Rx 260/290, Rx 360/390, R7 455 series, Xbox One (GCN2), R9 285/380, Fury/Nano series (GCN3), RX 460-480, RX 500 series (GCN4)
WDDM 2.1 Shader Model 6.0, DXIL
12_1 Nvidia GeForce 900/Titan series (Maxwell, 2nd gen), GeForce 10 series (Pascal), GeForce 16 series (Turing)

AMD RX Vega series (GCN5), Radeon RX 5000 series (RDNA);
Intel HD Graphics 510-580 (9 gen, Skylake), 605-620 (9.5 gen, Kaby Lake)

WDDM 2.0 Conservative Rasterization Tier 1, Rasterizer Ordered Views.
12_2 WDDM 2.9 DirectX 12 Ultimate: Shader Model 6.5, Raytracing Tier 1.1, Mesh Shaders, Variable-Rate Shading, Sampler Feedback, Resource Binding Tier 3, Tiled Resources Tier 3 (Texture3D), Conservative Rasterization Tier 3, 40-bit virtual address space.[31][32] Nvidia GeForce 20 series (Turing), GeForce 30 series (Ampere), GeForce 40 series (Lovelace);

AMD Radeon RX 6000 series (RDNA2), Radeon RX 7000 series (RDNA3);
Intel Arc Alchemist series (Xe HPG)

CORE_1_0 MCDM[33] Compute-only device: Resource Binding Tier 1 (with restrictions), Shader Model 6.0, DXIL, Compute Shaders only[33] Shader Model 6.0-6.7, metacommands. Intel NPU[34]

Direct3D 12 introduces a revamped resource binding model, allowing explicit control of memory. Abstract resource "view" objects[35] which allowed random read/write access are now represented by resource descriptors, which are allocated using memory heaps and tables.[36] This model is supported on majority of existing desktop GPU architectures and requires WDDM 2.0 drivers. Supported hardware is divided into three Resource Binding tiers, which define maximum numbers of descriptors that can be used for CBV (constant buffer view), SRV (shader resource view) and UAV (unordered access view); CBVs and SRVs per pipeline stage; UAVs for all pipeline stages; samplers per stage; and the number of SRV descriptor tables. Tier 3 hardware such as AMD GCN and, Intel Skylake has no limitations, allowing fully bindless resources only limited by the size of the descriptor heap, while Tier 1 (Nvidia Fermi, Intel Haswell/Broadwell) and Tier 2 (Nvidia Kepler) hardware impose some limits on the number of descriptors ("views") that can be used simultaneously. Additionally, buffers and textures can mixed together in the same resource heap only on hardware supporting Resource Heap Tier 2, while Tier 1 hardware requires separate memory heaps for buffers, textures, and render-target and depth stencil surfaces. Resource binding tier 1 and resource heap tier 1 are required for all supporting hardware.

Шаблон:Anchor

Resource binding tiers
Resource limits Tier 1 Tier 2 Tier 3
Descriptors in CBV/SRV/UAV heap colspan="2" Шаблон:Good Шаблон:Yes
CBVs per shader stage colspan="2" Шаблон:Partial Шаблон:Yes
SRVs per shader stage Шаблон:Partial colspan="2" Шаблон:Yes
UAVs across all stages Шаблон:Partial rowspan="2" Шаблон:Good rowspan="2" Шаблон:Yes
Шаблон:Good
Samplers per shader stage Шаблон:Good colspan="2" Шаблон:Yes
Feature level required 11_0 11_1
Unpopulated root signature entries Шаблон:No Шаблон:Good Шаблон:Yes
64 slots on feature level 11_1 and CORE_1_0 hardware

Some of the optional features such as tiled resources and conservative rasterization have "tiers" which define the set of supported capabilities. Шаблон:Anchor

Tiled resources tiers
Capability Tier 1 Tier 2 Tier 3 Tier 4
Tiled Buffer colspan="4" Шаблон:Yes
Tiled Texture2D colspan="4" Шаблон:Yes
Sample with LOD clamp Шаблон:No colspan="3" Шаблон:Yes
Sample with Feedback Шаблон:No colspan="3" Шаблон:Yes
NULL tile read Шаблон:No colspan="3" Шаблон:Yes
NULL tile write Шаблон:No colspan="3" Шаблон:Yes
Tiled Texture3D colspan="2" Шаблон:No colspan="2" Шаблон:Yes
Texture tile data-inheritance[37] colspan="3" Шаблон:No Шаблон:Yes

Шаблон:Anchor

Conservative rasterization tiers
Capability Tier 1 Tier 2 Tier 3
Required uncertainty region Шаблон:Good colspan="2" Шаблон:Yes
Post-snap degenerate triangles Шаблон:No colspan="2" Шаблон:Yes
Inner input coverage colspan="2" Шаблон:No Шаблон:Yes

Most features are optional for all feature levels, but some of these features are promoted to required on higher feature levels.

Support matrix

Шаблон:Anchor

Direct3D 12 optional feature support matrix by GPU vendor and series
colspan="2" scope="col" Шаблон:Diagonal split header Microsoft AMD Radeon Nvidia GeForce Intel Graphics Technology / Intel Arc
Name Tiers WARP12 GCN 1 GCN 2 / GCN 3 / GCN 4 GCN 5 / RDNA RDNA 2 / RDNA 3 Fermi Kepler Maxwell
(1st gen)
Maxwell
(2nd gen)
Pascal Volta Turing 16 series Turing 20 series / Ampere / Lovelace Gen7.5
(Haswell)
Gen8
(Broadwell)
Gen9 / Gen9.5
(SKL / KBL / CFL / CML)
Gen11
(Ice Lake)
Alchemist / Xe-LP / Gen12
(TGL / RKL / ADL / RPL)
Alchemist / Xe-HPG / Gen12.7
(Intel Arc)
Maximum feature level Шаблон:Yes Шаблон:Good Шаблон:Good Шаблон:Yes Шаблон:Yes colspan="3" Шаблон:Partial colspan="4" Шаблон:Yes colspan="1" Шаблон:Yes colspan="2" Шаблон:Good colspan="3" Шаблон:Yes colspan="1" Шаблон:Yes
Resource binding[38] 3 Шаблон:Yes colspan="4" Шаблон:Yes Шаблон:Partial Шаблон:Good colspan="6" Шаблон:Yes colspan="2" Шаблон:Partial colspan="4" Шаблон:Yes
Tiled resources[39][40] 4 Шаблон:Yes Шаблон:Good Шаблон:Good colspan="2" Шаблон:Yes colspan="3" Шаблон:Good colspan="5" Шаблон:Yes Шаблон:No Шаблон:Good colspan="4" Шаблон:Yes
Typed UAV loads for additional formats[41] Шаблон:Yes colspan="4" Шаблон:Yes colspan="2" Шаблон:No colspan="6" Шаблон:Yes colspan="2" Шаблон:No colspan="4" Шаблон:Yes
Conservative rasterization[42] 3 Шаблон:Yes colspan="2" Шаблон:No colspan="2" Шаблон:Yes colspan="3" Шаблон:No Шаблон:Good Шаблон:Good colspan="3" Шаблон:Yes colspan="2" Шаблон:No colspan="4" Шаблон:Yes
Rasterizer-ordered views[43] Шаблон:Yes colspan="2" Шаблон:No colspan="2" Шаблон:Yes colspan="3" Шаблон:No colspan="5" Шаблон:Yes colspan="6" Шаблон:Yes
Stencil reference value from Pixel Shader[44] Шаблон:Yes colspan="4" Шаблон:Yes colspan="8" Шаблон:No colspan="2" Шаблон:No colspan="4" Шаблон:Yes
UAV slots for all stages[45] Шаблон:Yes colspan="4" Шаблон:Yes Шаблон:Partial Шаблон:Good colspan="6" Шаблон:Yes colspan="2" Шаблон:Good colspan="4" Шаблон:Yes
Logical blend operations[46][47] Шаблон:Yes colspan="4" Шаблон:Yes colspan="8" Шаблон:Yes colspan="6" Шаблон:Yes
Double precision (64-bit) floating point operations[48][49] Шаблон:Yes colspan="4" Шаблон:Yes colspan="8" Шаблон:Yes colspan="5" Шаблон:Yes colspan="1" Шаблон:No
Minimum floating point precision[47][50] Шаблон:Yes colspan="2" Шаблон:Partial colspan="2" Шаблон:Good colspan="5" Шаблон:Partial colspan="3" Шаблон:Good Шаблон:Partial colspan="5" Шаблон:Good
Resource heap[51] 2 Шаблон:Yes colspan="4" Шаблон:Yes colspan="6" Шаблон:Good colspan="2" Шаблон:Yes colspan="5" Шаблон:Yes colspan="1" Шаблон:Good
Per-resource virtual addressing[52] Шаблон:Good colspan="2" Шаблон:Yes colspan="2" Шаблон:Yes colspan="8" Шаблон:Yes colspan="2" Шаблон:Good colspan="2" Шаблон:Yes colspan="2" Шаблон:Yes
Per-process virtual addressing[52] Шаблон:Yes colspan="2" Шаблон:Yes colspan="2" Шаблон:Yes colspan="8" Шаблон:Yes Шаблон:Partial colspan="5" Шаблон:Yes
View instancing[53][54] 3 Шаблон:Partial colspan="4" Шаблон:Partial colspan="3" Шаблон:Partial colspan="3" Шаблон:Good colspan="2" Шаблон:Yes colspan="4" Шаблон:Partial colspan="2" Шаблон:Good
Raytracing[55] 2 Шаблон:No colspan="3" Шаблон:No Шаблон:Yes colspan="4" Шаблон:No colspan="3" Шаблон:Good colspan="1" Шаблон:Yes colspan="5" Шаблон:No Шаблон:Yes
Variable-rate shading[56] 2 Шаблон:Good colspan="3" Шаблон:No Шаблон:Yes colspan="6" Шаблон:No colspan="2" Шаблон:Yes colspan="3" Шаблон:No colspan="2 "Шаблон:Good Шаблон:Yes
Mesh shaders[57] 1 Шаблон:Yes colspan="3" Шаблон:No Шаблон:Yes colspan="6" Шаблон:No colspan="2" Шаблон:Yes colspan="5" Шаблон:No Шаблон:Yes
Sampler feedback[58] 2 Шаблон:No colspan="3" Шаблон:No Шаблон:Yes colspan="6" Шаблон:No colspan="2" Шаблон:Good colspan="4" Шаблон:No colspan="2" Шаблон:Good

See also

References

Шаблон:Reflist

External links

  1. 1,0 1,1 1,2 Шаблон:Cite web
  2. Шаблон:Cite web
  3. 3,0 3,1 3,2 3,3 Шаблон:Cite web
  4. Шаблон:Cite web
  5. Шаблон:Cite web
  6. Шаблон:Cite web
  7. Шаблон:Cite web
  8. Шаблон:Cite web
  9. Шаблон:Cite web
  10. MSDN - DirectX and Gaming - Asm Shader Reference
  11. 11,0 11,1 Шаблон:Cite web
  12. Шаблон:Cite web
  13. Шаблон:Cite web
  14. Шаблон:Cite web
  15. Шаблон:Cite web
  16. Шаблон:Cite web
  17. Шаблон:Cite web
  18. Шаблон:Cite web
  19. Шаблон:Cite web
  20. Шаблон:Cite web
  21. Шаблон:Cite web
  22. Шаблон:Cite web
  23. Шаблон:Cite web
  24. Шаблон:Cite web
  25. GVCS005 - Microsoft Direct3D 12: New API Details and Intel Optimizations Шаблон:Webarchive
  26. Build 2015: Advanced DirectX12 Graphics and Performance
  27. Шаблон:Cite web
  28. Шаблон:Cite web
  29. Шаблон:Cite web
  30. Шаблон:Cite web
  31. Шаблон:Cite web
  32. Шаблон:Cite web
  33. 33,0 33,1 Шаблон:Cite web
  34. https://www.techpowerup.com/review/intel-meteor-lake-technical-deep-dive/4.html
  35. Шаблон:Cite web
  36. Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. Шаблон:Cite web
  40. Шаблон:Cite web
  41. Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. Шаблон:Cite web
  47. 47,0 47,1 Шаблон:Cite web
  48. Шаблон:Cite web
  49. Шаблон:Cite web
  50. Шаблон:Cite web
  51. Шаблон:Cite web
  52. 52,0 52,1 Шаблон:Cite web
  53. Шаблон:Cite web
  54. Шаблон:Cite web
  55. Шаблон:Cite web
  56. Шаблон:Cite web
  57. Шаблон:Cite web
  58. Шаблон:Cite web