> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.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](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_checkfeaturesupport_public).

## 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options_public).                                                                                                                                                                                                                                                                                                                                                                        |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_architecture_public).  <div class="alert">**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.</div> <div> </div>                            |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_feature_levels_public).                                                                                                                                                                                                                                                                             |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_format_support_public).                                                                                                                                                                                                                                                                                                                                                       |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_multisample_quality_levels_public).                                                                                                                                                                                                                                                                                                                                           |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_format_info_public).                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_gpu_virtual_address_support_public).                                                                                                                                                                                                                                                                                                                                                         |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_shader_model_public).                                                                                                                                                                                                                                                                                                                                                                                                          |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options1_public).                                                                                                                                                                                                                                                                                                                                                                               |
| 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](/reference/graphics/d3d12_x/structs/d3d12_feature_data_protected_resource_session_support).                                                                                                                                                                                                                                                                                                                                       |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_root_signature_public).                                                                                                                                                                                                                                                                                                                                                                                                  |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_architecture1_public).  <div class="alert">**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**.</div> <div> </div>                                                        |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options2_public).                                                                                                                                                                                                                                                                                                                                                   |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_shader_cache_public).                                                                                                                                                                                                                                                                                                                                                                                             |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_command_queue_priority_public).                                                                                                                                                                                                                                                                                                                                      |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options3_public).                                                                                                                                                                                                                                                                                                                  |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_existing_heaps_public).                                                                                                                                                                                                                                                                                                                                                  |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options4_public).                                                                                                                                                                                                                                                                                                                     |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_serialization_public).                                                                                                                                                                                                                                                                                                                                                                                        |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_cross_node_public).                                                                                                                                                                                                                                                                                                                                 |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options5_public).                                                                                                                                                                                                                                                                |
| D3D12\_FEATURE\_DISPLAYABLE                               | Starting with Windows 11 (Build 10.0.22000.194). The corresponding data structure for this value is [D3D12\_FEATURE\_DATA\_DISPLAYABLE](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_displayable_xs).                                                                                                                                                                                                                                                                                                                                                                                                               |
| 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options6_public).  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](/reference/graphics/d3d12/structs/d3d12_feature_data_query_meta_command_public).                                                                                                                                                                                                                                                                                                                                                                                  |
| 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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options7_xs).  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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_protected_resource_session_type_count_xs).                                                                                                                                                                                                                                                               |
| 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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_protected_resource_session_types_xs).                                                                                                                                                                                                                                                                           |
| 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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options8_xs).                                                                                                                                                                                                                                                                                                                            |
| 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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options9_xs).                                                                                                          |
| 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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options10_xs).                                                                                                                                                                                                                                                                           |
| 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](/reference/graphics/d3d12_xs/structs/d3d12_feature_data_d3d12_options11_xs).                                                                                                                                                                                                                                                                                                      |

## Remarks

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


## Related topics

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