您的應用程式可以探索資源系結的支持層級(以及許多其他功能的支持層級),並呼叫 ID3D12Device::CheckFeatureSupport。
如何查詢資源系結層
第一個範例著重於資源系結。 每個資源系結層都是功能中較低層的超集,因此在指定層上運作的程式代碼在任何較高層上都保持不變。
資源系結層是 D3D12_RESOURCE_BINDING_TIER 列舉中的常數。
若要查詢資源系結層,請使用這類程序代碼。 此程式代碼範例示範查詢任何各種功能支援的一般模式。
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;
}
請注意,您傳遞的任何列舉常數(在此案例中為 ,D3D12_FEATURE_D3D12_OPTIONS)都有對應的數據結構,可接收該功能或特性集的相關信息(在此案例中為D3D12_FEATURE_DATA_D3D12_OPTIONS)。 始終將指標傳遞至與您所傳遞的列舉常數相符的結構。
如何查詢任何功能層級
除了資源系結層,還有其他許多功能,其支援層級可讓您使用上述程式代碼範例所示的相同模式進行查詢。 您只要將與 D3D12_FEATURE 列舉不同的常數傳遞至 ID3D12Device::CheckFeatureSupport(告知 API 要求支持資訊的功能),並將指標傳遞至相符結構的實例(在其中接收要求的資訊)。
- 傳遞 D3D12_FEATURE_ARCHITECTURE 與 D3D12_FEATURE_DATA_ARCHITECTURE。
- 傳遞 D3D12_FEATURE_ARCHITECTURE1 與 D3D12_FEATURE_DATA_ARCHITECTURE1。
- 傳送 D3D12_FEATURE_COMMAND_QUEUE_PRIORITY 和 D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY。
- 傳遞 D3D12_FEATURE_CROSS_NODE 與 D3D12_FEATURE_DATA_CROSS_NODE。
- 傳遞 D3D12_FEATURE_D3D12_OPTIONS 與 D3D12_FEATURE_DATA_D3D12_OPTIONS。
- 傳遞參數 D3D12_FEATURE_D3D12_OPTIONS1 和 D3D12_FEATURE_DATA_D3D12_OPTIONS1。
- 傳遞 D3D12_FEATURE_D3D12_OPTIONS2 與 D3D12_FEATURE_DATA_D3D12_OPTIONS2。
- 傳遞 D3D12_FEATURE_D3D12_OPTIONS3 和 D3D12_FEATURE_DATA_D3D12_OPTIONS3。
- 傳遞 D3D12_FEATURE_D3D12_OPTIONS4 和 D3D12_FEATURE_DATA_D3D12_OPTIONS4。
- 傳遞 D3D12_FEATURE_D3D12_OPTIONS5 與 D3D12_FEATURE_DATA_D3D12_OPTIONS5。
- 傳遞 D3D12_FEATURE_EXISTING_HEAPS 與 D3D12_FEATURE_DATA_EXISTING_HEAPS。
- 傳遞 D3D12_FEATURE_FEATURE_LEVELS 與 D3D12_FEATURE_DATA_FEATURE_LEVELS。
- 傳遞 D3D12_FEATURE_FORMAT_INFO 與 D3D12_FEATURE_DATA_FORMAT_INFO。
- 傳遞 D3D12_FEATURE_FORMAT_SUPPORT 與 D3D12_FEATURE_DATA_FORMAT_SUPPORT。
- 傳遞 D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT 和 D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT。
- 傳遞 D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS 與 D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS。
- 傳遞 D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT 與 D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT。
- 傳遞 D3D12_FEATURE_ROOT_SIGNATURE 與 D3D12_FEATURE_DATA_ROOT_SIGNATURE。
- 傳遞 D3D12_FEATURE_SERIALIZATION 與 D3D12_FEATURE_DATA_SERIALIZATION。
- 傳遞 D3D12_FEATURE_SHADER_CACHE 與 D3D12_FEATURE_DATA_SHADER_CACHE。
- 傳遞 D3D12_FEATURE_SHADER_MODEL 與 D3D12_FEATURE_DATA_SHADER_MODEL。
DXGI 格式的硬體支援
若要檢視 DXGI 格式和硬體功能的數據表,請參閱這些主題。
- Direct3D 功能層級 12.1 硬體 的 DXGI 格式支援
- Direct3D 功能層級 12.0 硬體 的 DXGI 格式支援
- DXGI 格式支援 Direct3D 功能層級 11.1 的硬體
- DXGI 格式支援於 Direct3D 功能層級 11.0 硬體
- 對於 Direct3D 10Level9 格式的硬體支援
- Direct3D 10.1 格式的硬體支援
- Direct3D 10 格式的硬體支援