功能查詢

您的應用程式可以使用呼叫 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 哪些功能要求) 的支援資訊,並將指標傳遞至相符結構的實例 (,以接收要求的資訊) 。

DXGI 格式的硬體支援

若要檢視 DXGI 格式和硬體功能的資料表,請參閱這些主題。