Share via


Fonction D3D12EnableExperimentalFeatures (d3d12.h)

Active une liste de fonctionnalités expérimentales.

Syntaxe

HRESULT D3D12EnableExperimentalFeatures(
       UINT      NumFeatures,
  [in] const IID *pIIDs,
  [in] void      *pConfigurationStructs,
  [in] UINT      *pConfigurationStructSizes
);

Paramètres

NumFeatures

Type : UINT

Nombre de fonctionnalités expérimentales à activer.

[in] pIIDs

Type : const IID*

SAL : __in_ecount(NumFeatures)

Pointeur vers un tableau d’ID qui spécifient les fonctionnalités expérimentales disponibles à activer.

[in] pConfigurationStructs

Type : void*

SAL : __in_ecount(NumFeatures)

Structures qui contiennent des détails de configuration supplémentaires que certaines fonctionnalités expérimentales peuvent avoir besoin d’être activées.

[in] pConfigurationStructSizes

Type : UINT*

SAL : __in_ecount(NumFeatures)

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

Valeur retournée

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 correcte, si les fonctionnalités expérimentales spécifiées ne sont pas compatibles ou si d’autres erreurs.

Notes

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

Étant donné que l’ensemble des fonctionnalités expérimentales change au fil du temps et que ces fonctionnalités peuvent ne pas être stables, elles sont destinées uniquement au développement et à l’expérimentation. Cela est appliqué en exigeant que le mode développeur soit actif avant que toutes les 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 ; étant donné que les fonctionnalités expérimentales ne sont 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 à l’aide d’un ID IID comme GUID. Pour ces fonctionnalités, vous pouvez utiliser D3D12GetDebugInterface, en passant un IID en tant que paramètre, pour récupérer l’interface de manipulation de cette fonctionnalité.

Si cette fonction est appelée à nouveau avec une liste différente de fonctionnalités à activer, tous les appareils D3D12 actuels sont définis sur l’état DEVICE_REMOVED.

Exemples

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

// --------------------------------------------------------------------------------------------------------------------------------
// 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 }
};
	

Spécifications

   
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque D3D12.lib
DLL D3D12.dll

Voir aussi

Fonctions Core