Esecuzione di query sulle funzionalità
L'applicazione può individuare il livello di supporto per l'associazione di risorse (oltre al livello di supporto per molte altre funzionalità), con una chiamata a ID3D12Device::CheckFeatureSupport.
Come eseguire una query per il livello di associazione di risorse
Questo primo esempio è incentrato sull'associazione di risorse. Ogni livello di associazione di risorse è un superset di livelli inferiori nelle funzionalità, quindi il codice che funziona su un determinato livello funziona invariato in qualsiasi livello superiore.
I livelli di associazione delle risorse sono costanti nell'enumerazione D3D12_RESOURCE_BINDING_TIER .
Per eseguire una query per il livello di associazione di risorse, usare codice come questo. In questo esempio di codice viene illustrato il modello generale per l'esecuzione di query per uno dei vari tipi di supporto delle funzionalità.
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;
}
Si noti che qualsiasi costante enumerata passata (D3D12_FEATURE_D3D12_OPTIONS, in questo caso) ha una struttura di dati corrispondente che riceve informazioni su tale funzionalità o set di funzionalità (D3D12_FEATURE_DATA_D3D12_OPTIONS, in questo caso). Passare sempre un puntatore alla struttura corrispondente alla costante enumerata passata.
Come eseguire una query per qualsiasi livello di funzionalità
Oltre al livello di associazione di risorse, sono disponibili molte altre funzionalità il cui livello di supporto consente di eseguire query usando lo stesso modello illustrato nell'esempio di codice precedente. È sufficiente passare una costante diversa dall'enumerazione D3D12_FEATURE a ID3D12Device::CheckFeatureSupport (per indicare all'API la funzionalità per richiedere informazioni di supporto) e si passa un puntatore a un'istanza della struttura corrispondente (in cui ricevere le informazioni richieste).
- Passare D3D12_FEATURE_ARCHITECTURE e D3D12_FEATURE_DATA_ARCHITECTURE.
- Passare D3D12_FEATURE_ARCHITECTURE1 e D3D12_FEATURE_DATA_ARCHITECTURE1.
- Passare D3D12_FEATURE_COMMAND_QUEUE_PRIORITY e D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY.
- Passare D3D12_FEATURE_CROSS_NODE e D3D12_FEATURE_DATA_CROSS_NODE.
- Passare D3D12_FEATURE_D3D12_OPTIONS e D3D12_FEATURE_DATA_D3D12_OPTIONS.
- Passare D3D12_FEATURE_D3D12_OPTIONS1 e D3D12_FEATURE_DATA_D3D12_OPTIONS1.
- Passare D3D12_FEATURE_D3D12_OPTIONS2 e D3D12_FEATURE_DATA_D3D12_OPTIONS2.
- Passare D3D12_FEATURE_D3D12_OPTIONS3 e D3D12_FEATURE_DATA_D3D12_OPTIONS3.
- Passare D3D12_FEATURE_D3D12_OPTIONS4 e D3D12_FEATURE_DATA_D3D12_OPTIONS4.
- Passare D3D12_FEATURE_D3D12_OPTIONS5 e D3D12_FEATURE_DATA_D3D12_OPTIONS5.
- Passare D3D12_FEATURE_EXISTING_HEAPS e D3D12_FEATURE_DATA_EXISTING_HEAPS.
- Passare D3D12_FEATURE_FEATURE_LEVELS e D3D12_FEATURE_DATA_FEATURE_LEVELS.
- Passare D3D12_FEATURE_FORMAT_INFO e D3D12_FEATURE_DATA_FORMAT_INFO.
- Passare D3D12_FEATURE_FORMAT_SUPPORT e D3D12_FEATURE_DATA_FORMAT_SUPPORT.
- Passare D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT e D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
- Passare D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS e D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS.
- Passare D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT e D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
- Passare D3D12_FEATURE_ROOT_SIGNATURE e D3D12_FEATURE_DATA_ROOT_SIGNATURE.
- Passare D3D12_FEATURE_SERIALIZATION e D3D12_FEATURE_DATA_SERIALIZATION.
- Passare D3D12_FEATURE_SHADER_CACHE e D3D12_FEATURE_DATA_SHADER_CACHE.
- Passare D3D12_FEATURE_SHADER_MODEL e D3D12_FEATURE_DATA_SHADER_MODEL.
Supporto hardware per i formati DXGI
Per visualizzare le tabelle dei formati DXGI e delle funzionalità hardware, fare riferimento a questi argomenti.
- Supporto del formato DXGI per hardware Direct3D Livello di funzionalità 12.1
- Supporto del formato DXGI per l'hardware di livello di funzionalità Direct3D 12.0
- Supporto del formato DXGI per hardware Di livello 11.1 Direct3D
- Supporto del formato DXGI per l'hardware di livello di funzionalità Direct3D 11.0
- Supporto hardware per formati Direct3D 10Level9
- Supporto hardware per formati Direct3D 10.1
- Supporto hardware per formati Direct3D 10