> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_FEATURE

> Defines constants that specify a Direct3D 12 feature or feature set to query about.

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](https://docs.xbox.com/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_checkfeaturesupport_public.md).

## Syntax

```cpp theme={null}
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 = 0,
    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 = 0,
    D3D12_FEATURE_D3D12_OPTIONS11 = 0
} D3D12_FEATURE
```

## Constants

| Constant | Description |
| - | - |
| D3D12\_FEATURE\_D3D12\_OPTIONS | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options_public.md). |
| D3D12\_FEATURE\_ARCHITECTURE | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_architecture_public.md).  **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 | Indicates a query for info about the [feature levels](https://learn.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-devices-downlevel-intro) supported. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_FEATURE\_LEVELS](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_feature_levels_public.md). |
| D3D12\_FEATURE\_FORMAT\_SUPPORT | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_format_support_public.md). |
| D3D12\_FEATURE\_MULTISAMPLE\_QUALITY\_LEVELS | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_multisample_quality_levels_public.md). |
| D3D12\_FEATURE\_FORMAT\_INFO | Indicates a query for the DXGI data format. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_FORMAT\_INFO](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_format_info_public.md). |
| D3D12\_FEATURE\_GPU\_VIRTUAL\_ADDRESS\_SUPPORT | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_gpu_virtual_address_support_public.md). |
| D3D12\_FEATURE\_SHADER\_MODEL | Indicates a query for the supported shader model. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_SHADER\_MODEL](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_shader_model_public.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS1 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options1_public.md). |
| D3D12\_FEATURE\_PROTECTED\_RESOURCE\_SESSION\_SUPPORT | 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](https://docs.xbox.com/reference/graphics/d3d12_x/structs/d3d12_feature_data_protected_resource_session_support.md). |
| D3D12\_FEATURE\_ROOT\_SIGNATURE | Indicates a query for root signature version support. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_ROOT\_SIGNATURE](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_root_signature_public.md). |
| D3D12\_FEATURE\_ARCHITECTURE1 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_architecture1_public.md).  **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 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options2_public.md). |
| D3D12\_FEATURE\_SHADER\_CACHE | Indicates a query for the level of support for shader caching. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_SHADER\_CACHE](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_shader_cache_public.md). |
| D3D12\_FEATURE\_COMMAND\_QUEUE\_PRIORITY | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_command_queue_priority_public.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS3 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options3_public.md). |
| D3D12\_FEATURE\_EXISTING\_HEAPS | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_existing_heaps_public.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS4 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options4_public.md). |
| D3D12\_FEATURE\_SERIALIZATION | Indicates a query for the level of support for heap serialization. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_SERIALIZATION](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_serialization_public.md). |
| D3D12\_FEATURE\_CROSS\_NODE | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_cross_node_public.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS5 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options5_public.md). |
| D3D12\_FEATURE\_DISPLAYABLE | Starting with Windows 11 (Build 10.0.22000.194). The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_DISPLAYABLE](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_displayable_xs.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS6 | 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](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public.md).  For more info, see [Variable-rate shading (VRS)](https://learn.microsoft.com/en-us/windows/win32/direct3d12/vrs), and the [Direct3D 12 background processing spec](https://microsoft.github.io/DirectX-Specs/d3d/BackgroundProcessing.html). |
| D3D12\_FEATURE\_QUERY\_META\_COMMAND | Indicates a query for the level of support for metacommands. The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_QUERY\_META\_COMMAND](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_query_meta_command_public.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS7 | 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options7_xs.md).  For more info, see the [Mesh shader](https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html) and [Sampler feedback](https://microsoft.github.io/DirectX-Specs/d3d/SamplerFeedback.html) specs. |
| D3D12\_FEATURE\_PROTECTED\_RESOURCE\_SESSION\_TYPE\_COUNT | 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_protected_resource_session_type_count_xs.md). |
| D3D12\_FEATURE\_PROTECTED\_RESOURCE\_SESSION\_TYPES | 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_protected_resource_session_types_xs.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS8 | 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options8_xs.md). |
| D3D12\_FEATURE\_D3D12\_OPTIONS9 | 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options9_xs.md). |
| 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options10_xs.md). |
| 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](https://docs.xbox.com/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options11_xs.md). |

## Remarks

Use a constant from this enumeration in a call to [ID3D12Device::CheckFeatureSupport](https://docs.xbox.com/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_checkfeaturesupport_public.md) 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

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

* [Core enumerations](https://learn.microsoft.com/en-us/windows/win32/direct3d12/direct3d-12-enumerations)
* [ID3D12Device::CheckFeatureSupport](https://docs.xbox.com/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_checkfeaturesupport_public.md)


## Related topics

- [D3D12_FEATURE_DATA_D3D12_OPTIONS](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options_public.md)
- [D3D12_FEATURE_DATA_D3D12_OPTIONS2](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options2_public.md)
- [D3D12_FEATURE_DATA_D3D12_OPTIONS3](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options3_public.md)
- [D3D12_FEATURE_DATA_D3D12_OPTIONS5](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options5_public.md)
- [D3D12_FEATURE_DATA_D3D12_OPTIONS1](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options1_public.md)
