Yetkinlik sorgulama

Uygulamanız, id3D12Device::CheckFeatureSupportçağrısıyla kaynak bağlama için destek düzeyini (ve diğer birçok özellik için destek düzeyini) bulabilir.

Kaynak bağlama katmanını sorgulama

Bu ilk örnek, kaynak bağlamaya odaklanır. Her kaynak bağlama katmanı, işlevsellik açısından daha düşük katmanların üst kümesidir, bu nedenle belirli bir katmanda çalışan kod herhangi bir üst katmanda değişmeden çalışır.

Kaynak bağlama katmanları, D3D12_RESOURCE_BINDING_TIER sabit listesi içindeki sabitlerdir.

Kaynak bağlama katmanını sorgulamak için bunun gibi bir kod kullanın. Bu kod örneği, çeşitli özellik desteği türlerinden herhangi biri için sorgulamaya yönelik genel deseni gösterir.

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;
}

Geçirdiğiniz tüm numaralandırılmış sabitlerin (bu örnekteD3D12_FEATURE_D3D12_OPTIONS) ilgili özellik veya özellik kümesi (bu durumdaD3D12_FEATURE_DATA_D3D12_OPTIONS) hakkında bilgi alan ilgili bir veri yapısına sahip olduğunu unutmayın. Geçirdiğiniz numaralandırılmış sabit değeri ile eşleşen yapıya her zaman bir işaretçi geçirin.

Herhangi bir özellik düzeyi için sorgulama

Kaynak bağlama katmanının yanı sıra, yukarıdaki kod örneğinde gösterilen deseni kullanarak destek düzeyini sorgulayabileceğiniz birçok özellik daha vardır. D3D12_FEATURE numaralandırmasından ID3D12Device::CheckFeatureSupport (API'ye hangi özellikte destek bilgisi isteneceklerini bildirmek için) farklı bir sabit geçirirsiniz ve eşleşen yapının örneğine (istenen bilgilerin alınabilmesi için) bir işaretçi geçirirsiniz.

DXGI Biçimleri için donanım desteği

DXGI biçimlerinin ve donanım özelliklerinin tablolarını görüntülemek için bu konulara bakın.