機能の照会
アプリケーションで、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 形式のハードウェア サポート