Feature levels in Direct3D
{{short description|Overview of the feature levels in Direct3D}}
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|Direct3D#Feature levels}}
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,{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/hardware/ff569862 |title=Windows Driver Kit - Supporting Direct3D 11|publisher=MSDN|accessdate=2009-06-13}} however the hardware is not required to support all of these feature levels 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.{{cite web|url=http://www.microsoftgamefest.com/presentations/2008.htm |title=Gamefest 2008 Presentations |publisher=Microsoft |url-status=dead |archive-url=https://web.archive.org/web/20131113193604/http://www.microsoftgamefest.com/presentations/2008.htm |archive-date=2013-11-13 }}
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.{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876|title=Direct3D feature levels|publisher=MSDN|accessdate=2012-07-02}}
= 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"{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff476872|title=Direct3D 11 on Downlevel Hardware|accessdate=2012-11-18 |publisher=MSDN}}{{cite web | url = http://blogs.msdn.com/b/chuckw/archive/2012/06/20/direct3d-feature-levels.aspx | title = Direct3D Feature Levels | work = Games for Windows and the DirectX SDK Blog | author = Chuck Walbourn |date = June 20, 2012}}{{cite web|url=http://www.microsoft.com/download/en/details.aspx?id=15051 |archive-url=https://archive.today/20130128162239/http://www.microsoft.com/download/en/details.aspx?id=15051 |url-status=dead |archive-date=2013-01-28 |title=GameFest 2008: Introduction to the Direct3D 11 Graphics Pipeline |at=Slide 56 |publisher=Microsoft }} to support both Direct3D 10.0 and 10.1 hardware.{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb694529 |title=D3D10_FEATURE_LEVEL1 enumeration |accessdate=2009-11-22 |publisher=MSDN}}{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876.aspx|title=Direct3D feature levels|publisher=MSDN|accessdate=30 September 2014}}
=Direct3D 11=
{{anchor|Direct3D 9.3}}
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|D3D_FEATURE_LEVEL}} 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. "10 Level 9" feature levels contain a subset of the Direct3D 10/11 API{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ff476148 |title=10Level9 reference|accessdate=2012-11-18|publisher=MSDN}} and require shaders to be written in HLSL conforming to Shader Model 4.0 {{code|4_0_LEVEL_9_x}} compiler profiles, and not in the actual "shader assembly" language[https://msdn.microsoft.com/en-us/library/windows/desktop/bb219840 MSDN - DirectX and Gaming - Asm Shader Reference] of Shader Model 1.1/2.0; SM 3.0 ({{code|vs_3_0}}/{{code|ps_3_0}}) has been omitted deliberately in Direct3D 10 Level 9.
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{{cite web | url=https://msdn.microsoft.com/en-us/library/windows/desktop/hh404562#check_support_of_new_direct3d_11.1_features_and_formats | title=Direct3D 11.1 Features - Win32 apps| date=19 August 2020}} however feature level 11_1 and optional features are not available in Direct3D 11.1 for Windows 7 platform update{{cite web|url=http://blogs.msdn.com/b/chuckw/archive/2012/06/20/direct3d-feature-levels.aspx|title=MSDN Blogs|publisher=|accessdate=30 September 2014}} because it does not support WDDM 1.2.{{cite web | url=https://msdn.microsoft.com/en-us/library/windows/desktop/jj863687.aspx | title=Platform Update for Windows 7 - Win32 apps | date=19 August 2020 }}
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.{{cite web|url=http://channel9.msdn.com/Events/Build/2013/3-062|author=Bennett Sorbo|title=What's New in Direct3D 11.2|work =Channel9 - BUILD 2013| date=June 26, 2013}}
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.
class="wikitable" style="font-size: 90%"
|+ Direct3D 10 and 11 feature levels | ||||||
colspan="4"| Required features | colspan="3"| Optional features | rowspan="2" style="width:25%;"|GPUs supporting as a maximum feature level | ||||
---|---|---|---|---|---|---|
Feature level | Direct3D runtime | Driver model | Features
! Direct3D runtime | Driver model | Features | |
9_1
| rowspan=3 | 11.0 | rowspan=5 |WDDM 1.0 |Shader Model 2.0 ({{code|vs_2_0}}/{{code|ps_2_0}}), 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. | ||||||
9_3
| {{code|vs_2_a}}/{{code|ps_2_x}} 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,{{cite web|url=http://www.anandtech.com/show/6148/samsung-announces-a15malit604-based-exynos-5-dual |title=Samsung Announces A15/Mali-T604 Based Exynos 5 Dual |publisher=AnandTech |date= |accessdate=2013-06-15}} Mali-G51; Matrox M-series; Vivante GC2000 series onwards{{cite web | url=http://www.vivantecorp.com/en/technology/3d.html | title=Vivante Vega Cores for 3D | publisher=Vivante | accessdate=2014-12-10 | archive-url=https://web.archive.org/web/20150215184949/http://www.vivantecorp.com/en/technology/3d.html | archive-date=2015-02-15 | url-status=dead }} | ||||||
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) | ||||||
rowspan="2" | 11_0
| rowspan="2" | 11.0 | rowspan="2" | WDDM 1.1 | rowspan="2" | Shader Model 5.0, hull & domain shaders, DirectCompute (CS 5.0), 16K textures, BC6H/BC7, extended pixel formats, all 10_1 features. | 11.1 | 10_x: DirectCompute (CS 4.0/CS 4.1), extended pixel formats, logical blend operations. | 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. | rowspan=3 |11.3 | rowspan=3 |WDDM 2.0 | rowspan=3 |11_x/12_x: Conservative rasterization (three tiers),{{cite web|url=https://msdn.microsoft.com/en-us/library/dn859364.aspx|title=D3D11_CONSERVATIVE_RASTERIZATION_TIER enumeration|date=22 February 2015|work=MSDN library|accessdate=22 February 2015}} tiled resources (four tiers), stencil reference value from Pixel Shader, rasterizer ordered views, typed UAV loads for additional formats, UMA/hUMA support{{cite web|url=https://msdn.microsoft.com/en-us/library/windows/desktop/dn914596(v=vs.85).aspx|title=Direct3D 11.3 Features|date=28 March 2015|work=MSDN library|accessdate=28 March 2015}} | 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
| rowspan=2 | 11.3 | rowspan=2 | 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);{{cite web|url=http://www.anandtech.com/show/8526/nvidia-geforce-gtx-980-review/4|title=AnandTech - The NVIDIA GeForce GTX 980 Review: Maxwell Mark 2|author=Ryan Smith|publisher=|accessdate=30 September 2014|quote = First and foremost among Maxwell 2’s new features is the inclusion of full Direct3D 11.2/11.3 compatibility.}}{{cite web|url=http://www.anandtech.com/show/8544/microsoft-details-direct3d-113-12-new-features|title=AnandTech - Microsoft Details Direct3D 11.3 & 12 New Rendering Features|author=Ryan Smith|publisher=|accessdate=30 September 2014}}{{cite web|url=http://blogs.nvidia.com/blog/2014/09/19/maxwell-and-dx12-delivered/|title=Maxwell and DX12 Delivered|work=NVIDIA|accessdate=30 September 2014|archive-date=6 October 2014|archive-url=https://web.archive.org/web/20141006113249/http://blogs.nvidia.com/blog/2014/09/19/maxwell-and-dx12-delivered/|url-status=dead}}{{cite web|url=http://blogs.msdn.com/b/directx/archive/2014/09/18/directx-12-lights-up-nvidia-s-maxwell-editor-s-day.aspx|title=MSDN Blogs|publisher=|accessdate=30 September 2014}}{{Cite web|url=http://devblogs.nvidia.com/parallelforall/maxwell-most-advanced-cuda-gpu-ever-made/|title = Maxwell: The Most Advanced CUDA GPU Ever Made|date = 19 September 2014}} 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),{{cite web|url=http://www.pcgameshardware.de/Core-i7-6700K-CPU-260905/Tests/Skylake-Test-Core-i7-6700K-i5-6600K-1166741/#a3|date=5 August 2015|title=Intel Skylake: Core i7-6700K und i5-6600K im Test|work=PC GAMES HARDWARE ONLINE|accessdate=5 August 2015}} 605-620 (9.5 gen, Kaby Lake) | ||||||
Feature level | Direct3D runtime | Driver model | Features
! Direct3D runtime | Driver model | Features | rowspan="2" style="width:25%;"|GPUs supporting as a maximum feature level |
colspan="4"| Required features | colspan="3"| Optional features |
=Direct3D 12=
Direct3D 12 requires graphics hardware conforming to feature levels 11_0 and 11_1 which support virtual memory address translations.[https://intel.lanyonevents.com/sf14/connect/sessionDetail.ww?SESSION_ID=1315 GVCS005 - Microsoft Direct3D 12: New API Details and Intel Optimizations] {{webarchive |url=https://web.archive.org/web/20150404102336/https://intel.lanyonevents.com/sf14/connect/sessionDetail.ww?SESSION_ID=1315 |date=April 4, 2015 }}
"Build2015_McMullen">[http://channel9.msdn.com/Events/Build/2015/3-673 Build 2015: Advanced DirectX12 Graphics and Performance]
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.{{cite web | url=https://msdn.microsoft.com/en-us/library/dn899127.aspx | title=Hardware Tiers - Win32 apps | date=30 December 2021 }} 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,{{cite web | url=https://msdn.microsoft.com/en-us/library/mt733232(v=vs.85).aspx | title=HLSL Shader Model 6.0 - Win32 apps | date=25 August 2021 }} which requires WDDM 2.1 drivers, and new DXIL compiler based on LLVM.{{Cite web|url=https://github.com/Microsoft/DirectXShaderCompiler/wiki/FAQ|title = FAQ · microsoft/DirectXShaderCompiler Wiki|website = GitHub}} Windows 10 Creators Update versions 1703 and 1709 include Shader Model 6.1 and WDDM 2.2/2.3.
class="wikitable" style="font-size: 90%"
|+ Direct3D 12 feature levels | ||||
Level | Driver model | style="width:30%;"| Required features | Optional features | style="width:25%;"|GPUs supporting as a maximum feature level |
---|---|---|---|---|
11_0
| rowspan="2"| 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. | rowspan="7"| 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.{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_feature|title = D3D12_FEATURE - Win32 apps| date=14 February 2023 }} | 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) | ||||
rowspan="2"|12_0
|WDDM 2.0 | Resource Binding Tier 2, Tiled Resources Tier 2 (Texture2D), Typed UAV Loads (additional formats) | rowspan="2"| 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) | ||||
rowspan="2"|WDDM 2.1
|rowspan="2"|Shader Model 6.0, DXIL | ||||
rowspan="2"| 12_1
|rowspan="2"|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.{{Cite web|url=https://devblogs.microsoft.com/directx/new-in-directx-feature-level-12_2/|title = New in DirectX— Feature Level 12_2|date = 27 August 2020}}{{Cite web|url=https://microsoft.github.io/DirectX-Specs/d3d/D3D12_FeatureLevel12_2.html|title = Feature Level 12_2}} |Nvidia GeForce 20 series (Turing), GeForce 30 series (Ampere), GeForce 40 series (Lovelace); AMD Radeon RX 6000 series (RDNA2), Radeon RX 7000 series (RDNA3); | ||||
CORE_1_0
| Compute-only device: Resource Binding Tier 1 (with restrictions), Shader Model 6.0, DXIL, Compute Shaders only{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/direct3d12/core-feature-levels|title = The Direct3D 12 Core 1.0 Feature Level - Win32 apps| date=2 July 2020 }} | Shader Model 6.0-6.7, metacommands. | Intel NPU (Meteor Lake,{{cite web | url=https://www.techpowerup.com/review/intel-meteor-lake-technical-deep-dive/4.html | title=Intel Meteor Lake Technical Deep Dive | date=19 September 2023 }}{{cite web | url=https://www.anandtech.com/show/20046/intel-unveils-meteor-lake-architecture-intel-4-heralds-the-disaggregated-future-of-mobile-cpus/4 | title=Intel Unveils Meteor Lake Architecture: Intel 4 Heralds the Disaggregated Future of Mobile CPUs }} Arrow Lake) |
Direct3D 12 introduces a revamped resource binding model, allowing explicit control of memory. Abstract resource "view" objects{{cite web | url=https://msdn.microsoft.com/en-us/library/windows/desktop/ff476900(v=vs.85).aspx | title=Introduction to a Resource in Direct3D 11 - Win32 apps | date=6 October 2021 }} which allowed random read/write access are now represented by resource descriptors, which are allocated using memory heaps and tables.{{cite web |url=https://software.intel.com/en-us/articles/introduction-to-resource-binding-in-microsoft-directx-12 |author=Wolfgang Engel |title=Introduction to Resource Binding in Microsoft DirectX 12}} 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|binding}}
class="wikitable" style="font-size: 90%"
|+ Resource binding tiers | |||
Resource limits | Tier 1 | Tier 2 | Tier 3 |
---|---|---|---|
Descriptors in CBV/SRV/UAV heap | colspan="2" {{good|1M}} | {{yes|>1M}} | |
CBVs per shader stage | colspan="2" {{partial|14}} | {{yes|full heap}} | |
SRVs per shader stage | {{partial|128}} | colspan="2" {{yes|full heap}} | |
rowspan="2"| UAVs across all stages | {{partial|8}} | rowspan="2" {{good|64}} | rowspan="2" {{yes|full heap}} |
{{good|64}}† | |||
Samplers per shader stage | {{good|16}} | colspan="2" {{yes|full heap}} | |
Feature level required | colspan="2"| 11_0 | 11_1 | |
Unpopulated root signature entries | {{no}} | {{good|SRV heaps only}} | {{yes|all heaps}} |
colspan="4"|† 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}}
class="wikitable" style="font-size: 90%"
|+ 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|undefined}} | colspan="3" {{yes|zero}} | ||
NULL tile write | {{no|undefined}} | colspan="3" {{yes|discarded}} | ||
Tiled Texture3D | colspan="2" {{no}} | colspan="2" {{yes}} | ||
Texture tile data-inheritance{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/memory-aliasing-and-data-inheritance#data-inheritance|title = Memory Aliasing and Data Inheritance - Win32 apps| date=30 December 2021 }} | colspan="3" {{no}} | {{yes}} |
{{anchor|Conservative}}
class="wikitable" style="font-size: 90%"
|+ Conservative rasterization tiers | |||
Capability | Tier 1 | Tier 2 | Tier 3 |
---|---|---|---|
Required uncertainty region | {{good|1/2 px}} | colspan="2" {{yes|1/256 px}} | |
Post-snap degenerate triangles | {{no}} | colspan="2" {{yes|Not culled}} | |
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|matrix}}
class="wikitable plainrowheaders" style="text-align: center;"
|+ Direct3D 12 optional feature support matrix by GPU vendor and series |
colspan="2" scope="col" {{Diagonal split header|Feature|GPU}}
! scope="col" | Microsoft ! colspan="4" scope="col" | AMD Radeon ! colspan="8" scope="col" | Nvidia GeForce ! colspan="6" scope="col" | Intel Graphics Technology / Intel Arc |
---|
scope="col" | Name
! scope="col" | Tiers ! scope="col" | WARP12 ! scope="col" | GCN 1 ! scope="col" | GCN 2 / GCN 3 / GCN 4 ! scope="col" | RDNA 2 / RDNA 3 ! scope="col" | Fermi ! scope="col" | Kepler ! scope="col" | Maxwell ! scope="col" | Maxwell ! scope="col" | Pascal ! scope="col" | Volta ! scope="col" | Turing 16 series ! scope="col" | Turing 20 series / Ampere / Lovelace ! scope="col" | Gen7.5 ! scope="col" | Gen8 ! scope="col" | Gen9 / Gen9.5 ! scope="col" | Gen11 ! scope="col" | Alchemist / Xe-LP / Gen12 ! scope="col" | Alchemist / Xe-HPG / Gen12.7 |
colspan="2" scope="row" | Maximum feature level
| {{yes|12_1}} | {{good|11_1}} || {{good|12_0}} || {{yes|12_1}} || {{yes|12_2}} | colspan="3" {{partial|11_0}} || colspan="4" {{yes|12_1}} || colspan="1" {{yes|12_2}} | colspan="2" {{good|11_1}} || colspan="3" {{yes|12_1}} || colspan="1" {{yes|12_2}} |
scope="row" | Resource binding{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/direct3d12/descriptor-heaps|title=Descriptor Heaps - Windows applications|last=stevewhims|website=docs.microsoft.com|language=en-us|access-date=2019-09-08}}
!3 |{{yes|Tier 3}} |colspan="4" {{yes|Tier 3}} |{{partial|Tier 1}} || {{good|Tier 2}} || colspan="6" {{yes|Tier 3}} |colspan="2" {{partial|Tier 1}} || colspan="4" {{yes|Tier 3}} |
scope="row" | Tiled resources{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/api/D3D12/ne-d3d12-d3d12_tiled_resources_tier|title = D3D12_TILED_RESOURCES_TIER (D3d12.h) - Win32 apps| date=31 January 2022 }}{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/volume-tiled-resources|title = Volume tiled resources (Direct3D 12) - Win32 apps| date=30 December 2021 }}
!4 |{{yes|Tier 3}} |{{good|Tier 1}} || {{good|Tier 2}} ||colspan="2" {{yes|Tier 3}} |colspan="3" {{good|Tier 1}} ||colspan="5" {{yes|Tier 3}} |{{no}} || {{good|Tier 1}} || colspan="4" {{yes|Tier 3}} |
colspan="2" scope="row" | Typed UAV loads for additional formats{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/typed-unordered-access-view-loads|title=Typed unordered access view (UAV) loads - Win32 apps|date=30 December 2021 }}
|{{yes}} |colspan="4" {{yes}} |colspan="2" {{no}} || colspan="6" {{yes}} |colspan="2" {{no}} || colspan="4" {{yes}} |
scope="row" | Conservative rasterization{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/conservative-rasterization|title = Direct3D 12 Conservative Rasterization - Win32 apps| date=30 December 2021 }}
!3 |{{yes|Tier 3}} |colspan="2" {{no}} || colspan="2" {{yes|Tier 3}} |colspan="3" {{no}} || {{good|Tier 1}} || {{good|Tier 2}} ||colspan="3" {{yes|Tier 3}} |colspan="2" {{no}} || colspan="4" {{yes|Tier 3}} |
colspan="2" scope="row" | Rasterizer-ordered views{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/rasterizer-order-views|title = Rasterizer-ordered views - Win32 apps| date=30 December 2021 }}
|{{yes}} |colspan="2" {{no}} ||colspan="2" {{yes}} |colspan="3" {{no}} ||colspan="5" {{yes}} |colspan="6" {{yes}} |
colspan="2" scope="row" | Stencil reference value from Pixel Shader{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/shader-specified-stencil-reference-value|title = Shader Specified Stencil Reference Value (Direct3D 12 Graphics) - Win32 apps| date=30 December 2021 }}
|{{yes}} |colspan="4" {{yes}} |colspan="8" {{no}} |colspan="2" {{no}} || colspan="4" {{yes}} |
colspan="2" scope="row" | UAV slots for all stages{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/descriptor-heaps|title = Descriptor Heaps - Win32 apps| date=30 December 2021 }}
|{{yes|full heap}} |colspan="4" {{yes|full heap}} | {{partial|8}} || {{good|64}} ||colspan="6" {{yes|full heap}} |colspan="2" {{good|64}} || colspan="4" {{yes|full heap}} |
colspan="2" scope="row" | Logical blend operations{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-1-features#use-logical-operations-in-a-render-target|title = Direct3D 11.1 Features - Win32 apps| date=19 August 2020 }}{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d12/capability-querying|title = Capability querying - Win32 apps| date=30 December 2021 }}
|{{yes}} |colspan="4" {{yes}} |colspan="8" {{yes}} |colspan="6" {{yes}} |
colspan="2" scope="row" | Double precision (64-bit) floating point operations{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_doubles|title = D3D11_FEATURE_DATA_DOUBLES (D3d11.h) - Win32 apps| date=22 February 2024 }}{{Cite web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/display/directx-feature-improvements-in-windows-8#dblshader|title=DirectX feature improvements in Windows 8 - Windows drivers|date=15 December 2021 }}
|{{yes}} |colspan="4" {{yes}} |colspan="8" {{yes}} |colspan="5" {{yes}} |colspan="1" {{no}} |
colspan="2" scope="row" | Minimum floating point precision{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-1-features#use-hlsl-minimum-precision|title = Direct3D 11.1 Features - Win32 apps| date=19 August 2020 }}
| {{yes|10 or 16 bit}} | colspan="2" {{partial|32 bit}} || colspan="2" {{good|16 bit}} | colspan="5" {{partial|32 bit}} || colspan="3" {{good|16 bit}} | {{partial|32 bit}} || colspan="5" {{good|16 bit}} |
scope="row" | Resource heap{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_resource_heap_tier|title=D3D12_RESOURCE_HEAP_TIER (d3d12.h)|last=windows-sdk-content|website=docs.microsoft.com|language=en-us|access-date=2019-09-08}}
!2 |{{yes|Tier 2}} |colspan="4" {{yes|Tier 2}} |colspan="6" {{good|Tier 1}} || colspan="2" {{yes|Tier 2}} |colspan="5" {{yes|Tier 2}} |colspan="1" {{good|Tier 1}} |
colspan="2" scope="row" | Per-resource virtual addressing{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_feature_data_gpu_virtual_address_support|title=D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT (D3d12.h) - Win32 apps|date=2 April 2021 }}
|{{good|32 bit}} |colspan="2" {{yes|40 bit}} || {{yes|44 bit}} || {{yes|47 bit}} |colspan="8" {{yes|40 bit}} |colspan="2" {{good|31 bit}} || colspan="2" {{yes|38 bit}} || colspan="2" {{yes|44 bit}} |
colspan="2" scope="row" | Per-process virtual addressing
|{{yes|47 bit}} |colspan="2" {{yes|40 bit}} || {{yes|44 bit}} || {{yes|48 bit}} |colspan="8" {{yes|40 bit}} |{{partial|31 bit}} || colspan="5" {{yes|48 bit}} |
scope="row" | View instancing{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ne-d3d12-d3d12_view_instancing_tier|title = D3D12_VIEW_INSTANCING_TIER (D3d12.h) - Win32 apps| date=31 January 2022 }}{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_view_instancing_desc|title = D3D12_VIEW_INSTANCING_DESC (D3d12.h) - Win32 apps| date=2 April 2021 }}
!3 |{{partial|Tier 1}} |colspan="4" {{partial|Tier 1}} |colspan="3" {{partial|Tier 1}} || colspan="3" {{good|Tier 2}} || colspan="2" {{yes|Tier 3}} |colspan="4" {{partial|Tier 1}} || colspan="2" {{good|Tier 2}} |
scope="row" | Raytracing{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_raytracing_tier|title=D3D12_RAYTRACING_TIER (d3d12.h)|last=windows-sdk-content|website=docs.microsoft.com|language=en-us|access-date=2019-09-08}}
!2 |{{yes|Tier 1.1}} |colspan="3" {{no}} || {{yes|Tier 1.1}} |colspan="4" {{no}} || colspan="3" {{good|Tier 1}} || colspan="1" {{yes|Tier 1.1}} |colspan="5" {{no}} || {{yes|Tier 1.1}} |
scope="row" | Variable-rate shading{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/direct3d12/vrs|title=Variable-rate shading (VRS) - Windows applications|last=stevewhims|website=docs.microsoft.com|language=en-us|access-date=2019-09-08}}
!2 |{{good|Tier 1}} |colspan="3" {{no}} || {{yes|Tier 2}} |colspan="6" {{no}} || colspan="2" {{yes|Tier 2}} |colspan="3" {{no}} || colspan="2 "{{good|Tier 1}} || {{yes|Tier 2}} |
scope="row" | Mesh shaders{{Cite web|url=https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html|title = Mesh Shader}}
!1 |{{yes|Tier 1}} |colspan="3" {{no}} || {{yes|Tier 1}} |colspan="6" {{no}} || colspan="2" {{yes|Tier 1}} |colspan="5" {{no}} || {{yes|Tier 1}} |
scope="row" | Sampler feedback{{Cite web|url=https://microsoft.github.io/DirectX-Specs/d3d/SamplerFeedback.html|title=Sampler Feedback}}
!2 |{{yes|Tier 1}} |colspan="3" {{no}} || {{yes|Tier 1}} |colspan="6" {{no}} || colspan="2" {{good|Tier 0.9}} |colspan="4" {{no}} || colspan="2" {{good|Tier 0.9}} |
See also
References
{{Reflist}}
External links
- https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx