Share via


Função D3D12EnableExperimentalFeatures (d3d12.h)

Habilita uma lista de recursos experimentais.

Sintaxe

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

Parâmetros

NumFeatures

Tipo: UINT

O número de recursos experimentais a serem habilitados.

[in] pIIDs

Tipo: const IID*

SAL: __in_ecount(NumFeatures)

Um ponteiro para uma matriz de IDs que especificam quais dos recursos experimentais disponíveis habilitar.

[in] pConfigurationStructs

Tipo: void*

SAL: __in_ecount(NumFeatures)

Estruturas que contêm detalhes de configuração adicionais que alguns recursos experimentais podem precisar ser habilitados.

[in] pConfigurationStructSizes

Tipo: UINT*

SAL: __in_ecount(NumFeatures)

Os tamanhos de quaisquer structs de configuração passados no parâmetro pConfigurationStructs.

Valor retornado

Tipo: HRESULT

Esse método retorna um código de erro ou êxito HRESULT que pode incluir E_NOINTERFACE se um recurso não reconhecido for especificado ou o Modo de Desenvolvedor não estiver habilitado ou E_INVALIDARG se a configuração de um recurso estiver correta, os recursos experimentais especificados não forem compatíveis ou outros erros.

Comentários

Chame essa função antes da criação do dispositivo.

Como o conjunto de recursos experimentais mudará ao longo do tempo e, como esses recursos podem não ser estáveis, eles se destinam apenas ao desenvolvimento e experimentação. Isso é imposto exigindo que o Modo de Desenvolvedor esteja ativo antes que qualquer recurso experimental possa ser habilitado.

O conjunto de recursos experimentais com suporte no momento pode ser encontrado no cabeçalho D3D12.h, próximo à definição da função D3D12EnableExperimentalFeatures; porque os recursos experimentais só são disponibilizados com pouca frequência, é típico descobrir que nenhum recurso experimental tem suporte no momento.

Alguns recursos experimentais podem ser identificados usando um IID como GUID. Para esses recursos, você pode usar D3D12GetDebugInterface, passando um IID como um parâmetro, para recuperar a interface para manipular esse recurso.

Se essa função for chamada novamente com uma lista diferente de recursos a serem habilitados, todos os dispositivos D3D12 atuais serão definidos como o estado DEVICE_REMOVED.

Exemplos

Este exemplo mostra a aparência de uma definição de recurso experimental.

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

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d12.h
Biblioteca D3D12.lib
DLL D3D12.dll

Confira também

Core Functions