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 |