Abfragen der Funktionalität
Ihre Anwendung kann mit einem Aufruf von ID3D12Device::CheckFeatureSupport die Ebene der Unterstützung für die Ressourcenbindung (sowie die Supportebene für viele andere Features) ermitteln.
Abfragen der Ressourcenbindungsebene
In diesem ersten Beispiel liegt der Schwerpunkt auf der Ressourcenbindung. Jede Ressourcenbindungsebene ist eine Obermenge von niedrigeren Ebenen in der Funktionalität, sodass Code, der auf einer bestimmten Ebene funktioniert, auf jeder höheren Ebene unverändert funktioniert.
Die Ressourcenbindungsebenen sind Konstanten in der D3D12_RESOURCE_BINDING_TIER-Enumeration .
Verwenden Sie Code wie diesen, um die Ressourcenbindungsebene abzufragen. In diesem Codebeispiel wird das allgemeine Muster für Abfragen nach verschiedenen Arten von Featureunterstützung veranschaulicht.
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;
}
Beachten Sie, dass jede enumerierte Konstante, die Sie übergeben (in diesem Fall D3D12_FEATURE_D3D12_OPTIONS), über eine entsprechende Datenstruktur verfügt, die Informationen zu diesem Feature oder Satz von Features empfängt (in diesem Fall D3D12_FEATURE_DATA_D3D12_OPTIONS). Übergeben Sie immer einen Zeiger auf die Struktur, die der übergebenen Enumerationskonstante entspricht.
Abfragen für jede Featureebene
Neben der Ressourcenbindungsebene gibt es viele andere Features, deren Unterstützungsebene Sie mit demselben Muster abfragen können, das im obigen Codebeispiel gezeigt wird. Sie übergeben einfach eine andere Konstante von der D3D12_FEATURE-Enumeration an ID3D12Device::CheckFeatureSupport (um der API mitzuteilen, für welches Feature Supportinformationen angefordert werden soll), und Sie übergeben einen Zeiger auf eine instance der übereinstimmenden Struktur (in der die angeforderten Informationen empfangen werden).
- Übergeben Sie D3D12_FEATURE_ARCHITECTURE und D3D12_FEATURE_DATA_ARCHITECTURE.
- Übergeben Sie D3D12_FEATURE_ARCHITECTURE1 und D3D12_FEATURE_DATA_ARCHITECTURE1.
- Übergeben Sie D3D12_FEATURE_COMMAND_QUEUE_PRIORITY und D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY.
- Übergeben Sie D3D12_FEATURE_CROSS_NODE und D3D12_FEATURE_DATA_CROSS_NODE.
- Übergeben Sie D3D12_FEATURE_D3D12_OPTIONS und D3D12_FEATURE_DATA_D3D12_OPTIONS.
- Übergeben Sie D3D12_FEATURE_D3D12_OPTIONS1 und D3D12_FEATURE_DATA_D3D12_OPTIONS1.
- Übergeben Sie D3D12_FEATURE_D3D12_OPTIONS2 und D3D12_FEATURE_DATA_D3D12_OPTIONS2.
- Übergeben Sie D3D12_FEATURE_D3D12_OPTIONS3 und D3D12_FEATURE_DATA_D3D12_OPTIONS3.
- Übergeben Sie D3D12_FEATURE_D3D12_OPTIONS4 und D3D12_FEATURE_DATA_D3D12_OPTIONS4.
- Übergeben Sie D3D12_FEATURE_D3D12_OPTIONS5 und D3D12_FEATURE_DATA_D3D12_OPTIONS5.
- Übergeben Sie D3D12_FEATURE_EXISTING_HEAPS und D3D12_FEATURE_DATA_EXISTING_HEAPS.
- Übergeben Sie D3D12_FEATURE_FEATURE_LEVELS und D3D12_FEATURE_DATA_FEATURE_LEVELS.
- Übergeben Sie D3D12_FEATURE_FORMAT_INFO und D3D12_FEATURE_DATA_FORMAT_INFO.
- D3D12_FEATURE_FORMAT_SUPPORT undD3D12_FEATURE_DATA_FORMAT_SUPPORT.
- D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT undD3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
- Übergeben Sie D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS und D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS.
- D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT undD3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
- Übergeben Sie D3D12_FEATURE_ROOT_SIGNATURE und D3D12_FEATURE_DATA_ROOT_SIGNATURE.
- Übergeben Sie D3D12_FEATURE_SERIALIZATION und D3D12_FEATURE_DATA_SERIALIZATION.
- D3D12_FEATURE_SHADER_CACHE undD3D12_FEATURE_DATA_SHADER_CACHE.
- Übergeben Sie D3D12_FEATURE_SHADER_MODEL und D3D12_FEATURE_DATA_SHADER_MODEL.
Hardwareunterstützung für DXGI-Formate
Informationen zum Anzeigen von Tabellen mit DXGI-Formaten und Hardwarefeatures finden Sie in diesen Themen.
- DXGI-Formatunterstützung für Direct3D-Hardware der Featureebene 12.1
- DXGI-Formatunterstützung für Direct3D-Hardware der Featureebene 12.0
- DXGI-Formatunterstützung für Direct3D-Hardware der Featureebene 11.1
- DXGI-Formatunterstützung für Direct3D-Hardware der Featureebene 11.0
- Hardwareunterstützung für Direct3D 10Level9-Formate
- Hardwareunterstützung für Direct3D 10.1-Formate
- Hardwareunterstützung für Direct3D 10-Formate