Consulta de funcionalidade
Seu aplicativo pode descobrir o nível de suporte para associação de recursos (bem como o nível de suporte para muitos outros recursos), com uma chamada para ID3D12Device::CheckFeatureSupport.
Como consultar a camada de associação de recursos
Este primeiro exemplo se concentra na associação de recursos. Cada camada de associação de recursos é um superconjunto de camadas inferiores na funcionalidade, portanto, o código que funciona em uma determinada camada funciona inalterado em qualquer camada mais alta.
As camadas de associação de recursos são constantes na enumeração D3D12_RESOURCE_BINDING_TIER .
Para consultar a camada de associação de recursos, use um código como este. Este exemplo de código demonstra o padrão geral para consultar qualquer um dos vários tipos de suporte a recursos.
D3D12_RESOURCE_BINDING_TIER get_resource_binding_tier(::ID3D12Device* pIDevice)
{
D3D12_FEATURE_DATA_D3D12_OPTIONS featureSupport{};
winrt::check_hresult(
pIDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &featureSupport, sizeof(featureSupport))
);
switch (featureSupport.ResourceBindingTier)
{
case D3D12_RESOURCE_BINDING_TIER_1:
// Tier 1 is supported.
break;
case D3D12_RESOURCE_BINDING_TIER_2:
// Tiers 1 and 2 are supported.
break;
case D3D12_RESOURCE_BINDING_TIER_3:
// Tiers 1, 2, and 3 are supported.
break;
}
return featureSupport.ResourceBindingTier;
}
Observe que qualquer constante enumerada que você passa (D3D12_FEATURE_D3D12_OPTIONS, nesse caso) tem uma estrutura de dados correspondente que recebe informações sobre esse recurso ou conjunto de recursos (D3D12_FEATURE_DATA_D3D12_OPTIONS, nesse caso). Sempre passe um ponteiro para a estrutura que corresponde à constante enumerada que você passa.
Como consultar qualquer nível de recurso
Além da camada de associação de recursos, há muitos outros recursos cujo nível de suporte você pode consultar para usar o mesmo padrão mostrado no exemplo de código acima. Basta passar uma constante diferente da enumeração D3D12_FEATURE para ID3D12Device::CheckFeatureSupport (para informar à API em qual recurso solicitar informações de suporte) e passar um ponteiro para uma instância da estrutura correspondente (na qual receber as informações solicitadas).
- Passe D3D12_FEATURE_ARCHITECTURE e D3D12_FEATURE_DATA_ARCHITECTURE.
- Passe D3D12_FEATURE_ARCHITECTURE1 e D3D12_FEATURE_DATA_ARCHITECTURE1.
- Passe D3D12_FEATURE_COMMAND_QUEUE_PRIORITY e D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY.
- Passe D3D12_FEATURE_CROSS_NODE e D3D12_FEATURE_DATA_CROSS_NODE.
- Passe D3D12_FEATURE_D3D12_OPTIONS e D3D12_FEATURE_DATA_D3D12_OPTIONS.
- Passe D3D12_FEATURE_D3D12_OPTIONS1 e D3D12_FEATURE_DATA_D3D12_OPTIONS1.
- Passe D3D12_FEATURE_D3D12_OPTIONS2 e D3D12_FEATURE_DATA_D3D12_OPTIONS2.
- Passe D3D12_FEATURE_D3D12_OPTIONS3 e D3D12_FEATURE_DATA_D3D12_OPTIONS3.
- Passe D3D12_FEATURE_D3D12_OPTIONS4 e D3D12_FEATURE_DATA_D3D12_OPTIONS4.
- Passe D3D12_FEATURE_D3D12_OPTIONS5 e D3D12_FEATURE_DATA_D3D12_OPTIONS5.
- Passe D3D12_FEATURE_EXISTING_HEAPS e D3D12_FEATURE_DATA_EXISTING_HEAPS.
- Passe D3D12_FEATURE_FEATURE_LEVELS e D3D12_FEATURE_DATA_FEATURE_LEVELS.
- Passe D3D12_FEATURE_FORMAT_INFO e D3D12_FEATURE_DATA_FORMAT_INFO.
- Passe D3D12_FEATURE_FORMAT_SUPPORT e D3D12_FEATURE_DATA_FORMAT_SUPPORT.
- Passe D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT e D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
- Passe D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS e D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS.
- Passe D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT e D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
- Passe D3D12_FEATURE_ROOT_SIGNATURE e D3D12_FEATURE_DATA_ROOT_SIGNATURE.
- Passe D3D12_FEATURE_SERIALIZATION e D3D12_FEATURE_DATA_SERIALIZATION.
- Passe D3D12_FEATURE_SHADER_CACHE e D3D12_FEATURE_DATA_SHADER_CACHE.
- Passe D3D12_FEATURE_SHADER_MODEL e D3D12_FEATURE_DATA_SHADER_MODEL.
Suporte de hardware para formatos DXGI
Para exibir tabelas de formatos DXGI e recursos de hardware, consulte estes tópicos.
- Suporte ao formato DXGI para hardware de nível de recurso Direct3D 12.1
- Suporte ao formato DXGI para hardware de nível de recurso Direct3D 12.0
- Suporte ao formato DXGI para hardware de nível de recurso Direct3D 11.1
- Suporte ao formato DXGI para hardware de nível de recurso Direct3D 11.0
- Suporte de hardware para formatos Direct3D 10Level9
- Suporte de hardware para formatos Direct3D 10.1
- Suporte de hardware para formatos Direct3D 10