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).
- Lewati D3D12_FEATURE_ARCHITECTURE dan D3D12_FEATURE_DATA_ARCHITECTURE.
- Lewati D3D12_FEATURE_ARCHITECTURE1 dan D3D12_FEATURE_DATA_ARCHITECTURE1.
- Lewati D3D12_FEATURE_COMMAND_QUEUE_PRIORITY dan D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY.
- Lewati D3D12_FEATURE_CROSS_NODE dan D3D12_FEATURE_DATA_CROSS_NODE.
- Lewati D3D12_FEATURE_D3D12_OPTIONS dan D3D12_FEATURE_DATA_D3D12_OPTIONS.
- Lewati D3D12_FEATURE_D3D12_OPTIONS1 dan D3D12_FEATURE_DATA_D3D12_OPTIONS1.
- Lewati D3D12_FEATURE_D3D12_OPTIONS2 dan D3D12_FEATURE_DATA_D3D12_OPTIONS2.
- Lewati D3D12_FEATURE_D3D12_OPTIONS3 dan D3D12_FEATURE_DATA_D3D12_OPTIONS3.
- Lewati D3D12_FEATURE_D3D12_OPTIONS4 dan D3D12_FEATURE_DATA_D3D12_OPTIONS4.
- Lewati D3D12_FEATURE_D3D12_OPTIONS5 dan D3D12_FEATURE_DATA_D3D12_OPTIONS5.
- Lewati D3D12_FEATURE_EXISTING_HEAPS dan D3D12_FEATURE_DATA_EXISTING_HEAPS.
- Lewati D3D12_FEATURE_FEATURE_LEVELS dan D3D12_FEATURE_DATA_FEATURE_LEVELS.
- Lewati D3D12_FEATURE_FORMAT_INFO dan D3D12_FEATURE_DATA_FORMAT_INFO.
- Lewati D3D12_FEATURE_FORMAT_SUPPORT dan D3D12_FEATURE_DATA_FORMAT_SUPPORT.
- Lewati D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT dan D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
- Lewati D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS dan D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS.
- Lewati D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT dan D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
- Lewati D3D12_FEATURE_ROOT_SIGNATURE dan D3D12_FEATURE_DATA_ROOT_SIGNATURE.
- Lewati D3D12_FEATURE_SERIALIZATION dan D3D12_FEATURE_DATA_SERIALIZATION.
- Lewati D3D12_FEATURE_SHADER_CACHE dan D3D12_FEATURE_DATA_SHADER_CACHE.
- Lewati D3D12_FEATURE_SHADER_MODEL dan D3D12_FEATURE_DATA_SHADER_MODEL.
Dukungan perangkat keras untuk Format DXGI
Untuk melihat tabel format DXGI dan fitur perangkat keras, lihat topik ini.
- Dukungan Format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 12.1
- Dukungan Format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 12.0
- Dukungan Format DXGI untuk Perangkat Keras Direct3D Feature Level 11.1
- Dukungan Format DXGI untuk Perangkat Keras Tingkat Fitur Direct3D 11.0
- Dukungan Perangkat Keras untuk Format Direct3D 10Level9
- Dukungan Perangkat Keras untuk Format Direct3D 10.1
- Dukungan Perangkat Keras untuk Format Direct3D 10