功能查詢
您的應用程式可以使用呼叫 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 格式支援
- Direct3D 功能層級 11.1 硬體的 DXGI 格式支援
- Direct3D 功能層級 11.0 硬體的 DXGI 格式支援
- Direct3D 10Level9 格式的硬體支援
- Direct3D 10.1 格式的硬體支援
- Direct3D 10 格式的硬體支援