D3D12_FEATURE enumeration (d3d12.h)

Defines constants that specify a Direct3D 12 feature or feature set to query about. When you want to query for the level to which an adapter supports a feature, pass one of these values to ID3D12Device::CheckFeatureSupport.

Syntax

typedef enum D3D12_FEATURE {
  D3D12_FEATURE_D3D12_OPTIONS = 0,
  D3D12_FEATURE_ARCHITECTURE = 1,
  D3D12_FEATURE_FEATURE_LEVELS = 2,
  D3D12_FEATURE_FORMAT_SUPPORT = 3,
  D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
  D3D12_FEATURE_FORMAT_INFO = 5,
  D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
  D3D12_FEATURE_SHADER_MODEL = 7,
  D3D12_FEATURE_D3D12_OPTIONS1 = 8,
  D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
  D3D12_FEATURE_ROOT_SIGNATURE = 12,
  D3D12_FEATURE_ARCHITECTURE1 = 16,
  D3D12_FEATURE_D3D12_OPTIONS2 = 18,
  D3D12_FEATURE_SHADER_CACHE = 19,
  D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
  D3D12_FEATURE_D3D12_OPTIONS3 = 21,
  D3D12_FEATURE_EXISTING_HEAPS = 22,
  D3D12_FEATURE_D3D12_OPTIONS4 = 23,
  D3D12_FEATURE_SERIALIZATION = 24,
  D3D12_FEATURE_CROSS_NODE = 25,
  D3D12_FEATURE_D3D12_OPTIONS5 = 27,
  D3D12_FEATURE_DISPLAYABLE,
  D3D12_FEATURE_D3D12_OPTIONS6 = 30,
  D3D12_FEATURE_QUERY_META_COMMAND = 31,
  D3D12_FEATURE_D3D12_OPTIONS7 = 32,
  D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
  D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
  D3D12_FEATURE_D3D12_OPTIONS8 = 36,
  D3D12_FEATURE_D3D12_OPTIONS9 = 37,
  D3D12_FEATURE_D3D12_OPTIONS10,
  D3D12_FEATURE_D3D12_OPTIONS11,
  D3D12_FEATURE_D3D12_OPTIONS12,
  D3D12_FEATURE_D3D12_OPTIONS13,
  D3D12_FEATURE_D3D12_OPTIONS14,
  D3D12_FEATURE_D3D12_OPTIONS15,
  D3D12_FEATURE_D3D12_OPTIONS16,
  D3D12_FEATURE_D3D12_OPTIONS17,
  D3D12_FEATURE_D3D12_OPTIONS18,
  D3D12_FEATURE_D3D12_OPTIONS19,
  D3D12_FEATURE_D3D12_OPTIONS20,
  D3D12_FEATURE_PREDICATION,
  D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO,
  D3D12_FEATURE_HARDWARE_COPY,
  D3D12_FEATURE_D3D12_OPTIONS21
} ;

Constants

 
D3D12_FEATURE_D3D12_OPTIONS
Value: 0
Indicates a query for the level of support for basic Direct3D 12 feature options. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS.
D3D12_FEATURE_ARCHITECTURE
Value: 1
Indicates a query for the adapter's architectural details, so that your application can better optimize for certain adapter properties. The corresponding data structure for this value is D3D12_FEATURE_DATA_ARCHITECTURE.

Note  This value has been superseded by the D3D_FEATURE_DATA_ARCHITECTURE1 value. If your application targets Windows 10, version 1703 (Creators' Update) or higher, then use the D3D_FEATURE_DATA_ARCHITECTURE1 value instead.

 
D3D12_FEATURE_FEATURE_LEVELS
Value: 2
Indicates a query for info about the feature levels supported. The corresponding data structure for this value is D3D12_FEATURE_DATA_FEATURE_LEVELS.
D3D12_FEATURE_FORMAT_SUPPORT
Value: 3
Indicates a query for the resources supported by the current graphics driver for a given format. The corresponding data structure for this value is D3D12_FEATURE_DATA_FORMAT_SUPPORT.
D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS
Value: 4
Indicates a query for the image quality levels for a given format and sample count. The corresponding data structure for this value is D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS.
D3D12_FEATURE_FORMAT_INFO
Value: 5
Indicates a query for the DXGI data format. The corresponding data structure for this value is D3D12_FEATURE_DATA_FORMAT_INFO.
D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT
Value: 6
Indicates a query for the GPU's virtual address space limitations. The corresponding data structure for this value is D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
D3D12_FEATURE_SHADER_MODEL
Value: 7
Indicates a query for the supported shader model. The corresponding data structure for this value is D3D12_FEATURE_DATA_SHADER_MODEL.
D3D12_FEATURE_D3D12_OPTIONS1
Value: 8
Indicates a query for the level of support for HLSL 6.0 wave operations. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS1.
D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT
Value: 10
Indicates a query for the level of support for protected resource sessions. The corresponding data structure for this value is D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
D3D12_FEATURE_ROOT_SIGNATURE
Value: 12
Indicates a query for root signature version support. The corresponding data structure for this value is D3D12_FEATURE_DATA_ROOT_SIGNATURE.
D3D12_FEATURE_ARCHITECTURE1
Value: 16
Indicates a query for each adapter's architectural details, so that your application can better optimize for certain adapter properties. The corresponding data structure for this value is D3D12_FEATURE_DATA_ARCHITECTURE1.

Note  This value supersedes the D3D_FEATURE_DATA_ARCHITECTURE value. If your application targets Windows 10, version 1703 (Creators' Update) or higher, then use D3D_FEATURE_DATA_ARCHITECTURE1.

 
D3D12_FEATURE_D3D12_OPTIONS2
Value: 18
Indicates a query for the level of support for depth-bounds tests and programmable sample positions. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS2.
D3D12_FEATURE_SHADER_CACHE
Value: 19
Indicates a query for the level of support for shader caching. The corresponding data structure for this value is D3D12_FEATURE_DATA_SHADER_CACHE.
D3D12_FEATURE_COMMAND_QUEUE_PRIORITY
Value: 20
Indicates a query for the adapter's support for prioritization of different command queue types. The corresponding data structure for this value is D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY.
D3D12_FEATURE_D3D12_OPTIONS3
Value: 21
Indicates a query for the level of support for timestamp queries, format-casting, immediate write, view instancing, and barycentrics. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS3.
D3D12_FEATURE_EXISTING_HEAPS
Value: 22
Indicates a query for whether or not the adapter supports creating heaps from existing system memory. The corresponding data structure for this value is D3D12_FEATURE_DATA_EXISTING_HEAPS.
D3D12_FEATURE_D3D12_OPTIONS4
Value: 23
Indicates a query for the level of support for 64KB-aligned MSAA textures, cross-API sharing, and native 16-bit shader operations. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS4.
D3D12_FEATURE_SERIALIZATION
Value: 24
Indicates a query for the level of support for heap serialization. The corresponding data structure for this value is D3D12_FEATURE_DATA_SERIALIZATION.
D3D12_FEATURE_CROSS_NODE
Value: 25
Indicates a query for the level of support for the sharing of resources between different adapters—for example, multiple GPUs. The corresponding data structure for this value is D3D12_FEATURE_DATA_CROSS_NODE.
D3D12_FEATURE_D3D12_OPTIONS5
Value: 27
Starting with Windows 10, version 1809 (10.0; Build 17763), indicates a query for the level of support for render passes, ray tracing, and shader-resource view tier 3 tiled resources. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS5.
D3D12_FEATURE_DISPLAYABLE
Starting with Windows 11 (Build 10.0.22000.194). The corresponding data structure for this value is D3D12_FEATURE_DATA_DISPLAYABLE.
D3D12_FEATURE_D3D12_OPTIONS6
Value: 30
Starting with Windows 10, version 1903 (10.0; Build 18362), indicates a query for the level of support for variable-rate shading (VRS), and indicates whether or not background processing is supported. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS6.

For more info, see Variable-rate shading (VRS), and the Direct3D 12 background processing spec.
D3D12_FEATURE_QUERY_META_COMMAND
Value: 31
Indicates a query for the level of support for metacommands. The corresponding data structure for this value is D3D12_FEATURE_DATA_QUERY_META_COMMAND.
D3D12_FEATURE_D3D12_OPTIONS7
Value: 32
Starting with Windows 10, version 2004 (10.0; Build 19041), indicates a query for the level of support for mesh and amplification shaders, and for sampler feedback. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS7.

For more info, see the Mesh shader and Sampler feedback specs.
D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
Value: 33
Starting with Windows 10, version 2004 (10.0; Build 19041), indicates a query to retrieve the count of protected resource session types. The corresponding data structure for this value is D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT.
D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES
Value: 34
Starting with Windows 10, version 2004 (10.0; Build 19041), indicates a query to retrieve the list of protected resource session types. The corresponding data structure for this value is D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES.
D3D12_FEATURE_D3D12_OPTIONS8
Value: 36
Starting with Windows 11 (Build 10.0.22000.194), indicates whether or not unaligned block-compressed textures are supported. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS8.
D3D12_FEATURE_D3D12_OPTIONS9
Value: 37
Starting with Windows 11 (Build 10.0.22000.194), indicates whether or not support exists for mesh shaders, values of SV_RenderTargetArrayIndex that are 8 or greater, typed resource 64-bit integer atomics, derivative and derivative-dependent texture sample operations, and the level of support for WaveMMA (wave_matrix) operations. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS9.
D3D12_FEATURE_D3D12_OPTIONS10
Starting with Windows 11 (Build 10.0.22000.194), indicates whether or not the SUM combiner can be used, and whether or not SV_ShadingRate can be set from a mesh shader. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS10.
D3D12_FEATURE_D3D12_OPTIONS11
Starting with Windows 11 (Build 10.0.22000.194), indicates whether or not 64-bit integer atomics on resources in descriptor heaps are supported. The corresponding data structure for this value is D3D12_FEATURE_DATA_D3D12_OPTIONS11.

Remarks

Use a constant from this enumeration in a call to ID3D12Device::CheckFeatureSupport to query a driver about support for various Direct3D 12 features. Each value in this enumeration has a corresponding data structure that you must pass (by pointer reference) in the pFeatureSupportData parameter of ID3D12Device::CheckFeatureSupport.

Requirements

Requirement Value
Header d3d12.h

See also