Bagikan melalui


Kueri kapabilitas

Aplikasi Anda dapat menemukan tingkat dukungan untuk pengikatan sumber daya (serta tingkat dukungan untuk banyak fitur lain), dengan panggilan ke ID3D12Device::CheckFeatureSupport.

Cara mengkueri tingkat pengikatan sumber daya

Contoh pertama ini berfokus pada pengikatan sumber daya. Setiap tingkat pengikatan sumber daya adalah superset tingkat yang lebih rendah dalam fungsionalitas, sehingga kode yang berfungsi pada tingkat tertentu berfungsi tidak berubah pada tingkat yang lebih tinggi.

Tingkat pengikatan sumber daya adalah konstanta dalam enumerasi D3D12_RESOURCE_BINDING_TIER .

Untuk mengkueri tingkat pengikatan sumber daya, gunakan kode seperti ini. Contoh kode ini menunjukkan pola umum untuk mengkueri salah satu dari berbagai jenis dukungan fitur.

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

Perhatikan bahwa konstanta enumerasi apa pun yang Anda lewati (D3D12_FEATURE_D3D12_OPTIONS, dalam hal ini) memiliki struktur data terkait yang menerima info tentang fitur atau kumpulan fitur tersebut (D3D12_FEATURE_DATA_D3D12_OPTIONS, dalam hal ini). Selalu berikan pointer ke struktur yang cocok dengan konstanta enumerasi yang Anda lewati.

Cara mengkueri tingkat fitur apa pun

Selain tingkat pengikatan sumber daya, ada banyak fitur lain yang tingkat dukungannya dapat Anda kueri untuk menggunakan pola yang sama yang diperlihatkan dalam contoh kode di atas. Anda hanya meneruskan konstanta yang berbeda dari enumerasi D3D12_FEATURE ke ID3D12Device::CheckFeatureSupport (untuk memberi tahu API fitur apa yang meminta informasi dukungan), dan Anda meneruskan pointer ke instans struktur yang cocok (untuk menerima info yang diminta).

Dukungan perangkat keras untuk Format DXGI

Untuk melihat tabel format DXGI dan fitur perangkat keras, lihat topik ini.