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

# D3D12EnableExperimentalFeatures

> Active une liste de fonctionnalités expérimentales.

Active une liste de fonctionnalités expérimentales.

## Syntaxe

```cpp theme={null}
HRESULT D3D12EnableExperimentalFeatures(
    UINT NumFeatures,
    const IID  pIIDs,
    void  pConfigurationStructs,
    UINT  pConfigurationStructSizes
)
```

### Paramètres

*NumFeatures*\
Type : UINT

Nombre de fonctionnalités expérimentales à activer.

*pIIDs \[in]*\
Type : const IID \*

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values?view=vs-2015\&preserve-view=true) : <code>\_\_in\_ecount(NumFeatures)</code>

Pointeur vers un tableau d'ID qui spécifient lesquelles des fonctionnalités expérimentales disponibles doivent être activées.

*pConfigurationStructs \[in]*\
Type : void \*

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values?view=vs-2015\&preserve-view=true) : <code>\_\_in\_ecount(NumFeatures)</code>

Structures qui contiennent des détails de configuration supplémentaires dont certaines fonctionnalités expérimentales pourraient avoir besoin pour être activées.

*pConfigurationStructSizes \[in]*\
Type : UINT \*

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values?view=vs-2015\&preserve-view=true) : <code>\_\_in\_ecount(NumFeatures)</code>

Tailles des structures de configuration passées dans le paramètre pConfigurationStructs.

### Valeur de retour

Type : HRESULT

Cette méthode retourne un code de réussite ou d'erreur HRESULT qui peut inclure E\_NOINTERFACE si une fonctionnalité non reconnue est spécifiée ou si le mode développeur n'est pas activé, ou E\_INVALIDARG si la configuration d'une fonctionnalité est incorrecte, si les fonctionnalités expérimentales spécifiées ne sont pas compatibles, ou en cas d'autres erreurs.

## Remarques

Appelez cette fonction avant la création de l'appareil.

Comme l'ensemble des fonctionnalités expérimentales changera au fil du temps, et comme ces fonctionnalités peuvent ne pas être stables, elles sont destinées uniquement au développement et à l'expérimentation. Cela est imposé en exigeant que le mode développeur soit actif avant que des fonctionnalités expérimentales puissent être activées.

L'ensemble des fonctionnalités expérimentales actuellement prises en charge se trouve dans l'en-tête D3D12.h, près de la définition de la fonction D3D12EnableExperimentalFeatures; comme les fonctionnalités expérimentales ne sont rendues disponibles que rarement, il est courant de constater qu'aucune fonctionnalité expérimentale n'est actuellement prise en charge.

Certaines fonctionnalités expérimentales peuvent être identifiées en utilisant un IID comme GUID. Pour ces fonctionnalités, vous pouvez utiliser D3D12GetDebugInterface, en passant un IID comme paramètre, pour récupérer l'interface permettant de manipuler cette fonctionnalité.

Si cette fonction est appelée de nouveau avec une liste différente de fonctionnalités à activer, tous les appareils D3D12 actuels sont mis dans l'état DEVICE\_REMOVED.

#### Exemples

Cet exemple montre à quoi ressemble la définition d'une fonctionnalité expérimentale.

```cpp theme={null}
// --------------------------------------------------------------------------------------------------------------------------------
// Experimental Feature: D3D12ExperimentalShaderModels
//
// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
// meaning shader models that haven't been finalized for use in retail.
//
// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
//
// --------------------------------------------------------------------------------------------------------------------------------
static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
0x76f5573e,
0xf13a,
0x40f5,
{ 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
};

```

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

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


## Related topics

- [D3D12_COLOR_WRITE_ENABLE](/fr-CA/reference/graphics/d3d12/enums/d3d12_color_write_enable_public.md)
- [D3D12_BLEND_DESC](/fr-CA/reference/graphics/d3d12/structs/d3d12_blend_desc_public.md)
- [D3D12_DRED_ENABLEMENT](/fr-CA/reference/graphics/d3d12/enums/d3d12_dred_enablement_public.md)
- [D3D12_RENDER_TARGET_BLEND_DESC](/fr-CA/reference/graphics/d3d12/structs/d3d12_render_target_blend_desc_public.md)
- [D3D12_FEATURE](/fr-CA/reference/graphics/d3d12/enums/d3d12_feature_public.md)
