> ## 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_DATA_D3D12_OPTIONS

> Décrit les options de fonctionnalités Direct3D 12 du pilote graphique actuel.

Décrit les options de fonctionnalités Direct3D 12 du pilote graphique actuel.

## Syntaxe

```cpp theme={null}
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
{
    BOOL DoublePrecisionFloatShaderOps;
    BOOL OutputMergerLogicOp;
    D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
    D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
    D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
    BOOL PSSpecifiedStencilRefSupported;
    BOOL TypedUAVLoadAdditionalFormats;
    BOOL ROVsSupported;
    D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
    UINT MaxGPUVirtualAddressBitsPerResource;
    BOOL StandardSwizzle64KBSupported;
    D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
    BOOL CrossAdapterRowMajorTextureSupported;
    BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
    D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS
```

### Membres

*DoublePrecisionFloatShaderOps*\
Type : BOOL

Spécifie si les types **double** sont autorisés pour les opérations de nuanceur.
Si **TRUE**, les types double sont autorisés ; sinon **FALSE**.
Les opérations prises en charge sont équivalentes au membre **ExtendedDoublesShaderInstructions** de la structure [D3D11\_FEATURE\_DATA\_D3D11\_OPTIONS](https://learn.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_d3d11_options) de Direct3D 11.

Pour utiliser un nuanceur HLSL compilé avec un type **double**,
le runtime doit définir **DoublePrecisionFloatShaderOps** sur **TRUE**.

*OutputMergerLogicOp*\
Type : BOOL

Spécifie si les opérations logiques sont disponibles dans l'état de fusion. Le runtime définit ce membre sur **TRUE** si les opérations logiques sont disponibles dans l'état de fusion et sur **FALSE** dans le cas contraire. Ce membre est **FALSE** pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3. Ce membre est facultatif pour les niveaux de fonctionnalité 10, 10.1 et 11. Ce membre est **TRUE** pour les niveaux de fonctionnalité 11.1 et 12.

*MinPrecisionSupport*\
Type : D3D12\_SHADER\_MIN\_PRECISION\_SUPPORT

Combinaison de valeurs de type [D3D12\_SHADER\_MIN\_PRECISION\_SUPPORT](/fr/reference/graphics/d3d12/enums/d3d12_shader_min_precision_support_public) combinées à l'aide d'une opération OR au niveau du bit. La valeur résultante spécifie les niveaux de précision minimale que le pilote prend en charge pour les étapes de nuanceur. Une valeur de zéro indique que le pilote ne prend en charge que la précision 32 bits complète pour toutes les étapes de nuanceur.

*TiledResourcesTier*\
Type : D3D12\_TILED\_RESOURCES\_TIER

Spécifie si le matériel et le pilote prennent en charge les ressources en mosaïque. Le runtime définit ce membre sur une valeur de type [D3D12\_TILED\_RESOURCES\_TIER](/fr/reference/graphics/d3d12/enums/d3d12_tiled_resources_tier_public) qui indique si le matériel et le pilote prennent en charge les ressources en mosaïque et à quel niveau.

*ResourceBindingTier*\
Type : D3D12\_RESOURCE\_BINDING\_TIER

Spécifie le niveau auquel le matériel et le pilote prennent en charge la liaison de ressources. Le runtime définit ce membre sur une valeur de type [D3D12\_RESOURCE\_BINDING\_TIER](/fr/reference/graphics/d3d12/enums/d3d12_resource_binding_tier_public) qui indique le niveau.

*PSSpecifiedStencilRefSupported*\
Type : BOOL

Spécifie si la référence de gabarit du nuanceur de pixels est prise en charge. Si **TRUE**, elle est prise en charge ; sinon **FALSE**.

*TypedUAVLoadAdditionalFormats*\
Type : BOOL

Spécifie si le chargement de formats supplémentaires pour les vues d'accès non ordonné (UAV) typées est pris en charge.
Si **TRUE**, il est pris en charge ; sinon **FALSE**.

*ROVsSupported*\
Type : BOOL

Spécifie si les [vues ordonnées par rastériseur](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/directx-12-glossary) (ROV) sont prises en charge. Si **TRUE**, elles sont prises en charge ; sinon **FALSE**.

*ConservativeRasterizationTier*\
Type : D3D12\_CONSERVATIVE\_RASTERIZATION\_TIER

Spécifie le niveau auquel le matériel et le pilote prennent en charge la rastérisation conservatrice. Le runtime définit ce membre sur une valeur de type [D3D12\_CONSERVATIVE\_RASTERIZATION\_TIER](/fr/reference/graphics/d3d12/enums/d3d12_conservative_rasterization_tier_public) qui indique le niveau.

*MaxGPUVirtualAddressBitsPerResource*\
Type : UINT

N'utilisez pas ce champ ; utilisez plutôt la requête [D3D12\_FEATURE\_DATA\_GPU\_VIRTUAL\_ADDRESS\_SUPPORT](/fr/reference/graphics/d3d12/structs/d3d12_feature_data_gpu_virtual_address_support_public)
(une structure avec un membre **MaxGPUVirtualAddressBitsPerResource**), qui est plus précise.

*StandardSwizzle64KBSupported*\
Type : BOOL

TRUE si le matériel prend en charge les textures avec le modèle de swizzle standard de 64 Ko.
La prise en charge de ce modèle permet des optimisations de texture sans copie tout en offrant une localité quasi équilatérale pour chaque dimension de la texture.
Pour connaître les options et restrictions de swizzle de texture, consultez [D3D12\_TEXTURE\_LAYOUT](/fr/reference/graphics/d3d12_x/enums/d3d12_texture_layout).

*CrossNodeSharingTier*\
Type : D3D12\_CROSS\_NODE\_SHARING\_TIER

Constante d'énumération [D3D12\_CROSS\_NODE\_SHARING\_TIER](/fr/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public) qui spécifie le niveau de partage entre les nœuds d'un adaptateur comportant plusieurs nœuds,
par exemple Tier 1 Emulated, Tier 1 ou Tier 2.

*CrossAdapterRowMajorTextureSupported*\
Type : BOOL

FALSE signifie que le périphérique prend uniquement en charge les opérations de copie vers et depuis des textures row-major inter-adaptateurs.
TRUE signifie que le périphérique prend en charge les vues de ressources de nuanceur, les vues d'accès non ordonné et les vues de cible de rendu de textures row-major inter-adaptateurs.
« Inter-adaptateurs » signifie entre plusieurs adaptateurs (même provenant de différents IHV).

*VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation*\
Type : BOOL

Indique si l'index de tableau de fenêtre d'affichage (VP) et de cible de rendu (RT) provenant de tout nuanceur alimentant le rastériseur est pris en charge sans émulation de nuanceur de géométrie.
Comparez avec le membre **VPAndRTArrayIndexFromAnyShaderFeedingRasterizer** de la structure [D3D11\_FEATURE\_DATA\_D3D11\_OPTIONS3](https://learn.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_d3d11_options3).
Dans [ID3D12ShaderReflection::GetRequiresFlags](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12shader/nf-d3d12shader-id3d12shaderreflection-getrequiresflags), consultez le #define D3D\_SHADER\_REQUIRES\_VIEWPORT\_AND\_RT\_ARRAY\_INDEX\_FROM\_ANY\_SHADER\_FEEDING\_RASTERIZER.

*ResourceHeapTier*\
Type : D3D12\_RESOURCE\_HEAP\_TIER

Spécifie le niveau auquel le matériel et le pilote exigent une attribution de tas liée au type de ressource.
Le runtime définit ce membre sur une constante d'énumération [D3D12\_RESOURCE\_HEAP\_TIER](/fr/reference/graphics/d3d12/enums/d3d12_resource_heap_tier_public).

## Remarques

Consultez [D3D12\_FEATURE](/fr/reference/graphics/d3d12/enums/d3d12_feature_public).

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h\
**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib\
**Plateformes prises en charge** : consoles XBOX Series et famille XBOX One

## Voir aussi

[Rastérisation conservatrice](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/conservative-rasterization)

[Structures principales](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)

[D3D12\_FEATURE](/fr/reference/graphics/d3d12/enums/d3d12_feature_public)

[Vues ordonnées par rastériseur](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/rasterizer-order-views)


## Related topics

- [D3D12_RESOURCE_BINDING_TIER](/fr/reference/graphics/d3d12/enums/d3d12_resource_binding_tier_public.md)
- [D3D12_CONSERVATIVE_RASTERIZATION_TIER](/fr/reference/graphics/d3d12/enums/d3d12_conservative_rasterization_tier_public.md)
- [D3D12_CROSS_NODE_SHARING_TIER](/fr/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public.md)
- [D3D12_SHADER_MIN_PRECISION_SUPPORT](/fr/reference/graphics/d3d12/enums/d3d12_shader_min_precision_support_public.md)
- [D3D12_RESOURCE_HEAP_TIER](/fr/reference/graphics/d3d12/enums/d3d12_resource_heap_tier_public.md)
