ハードウェアの機能レベル

11_0 から 12_1 のハードウェア機能レベルの機能について説明します。

最新または既存のコンピューターで多様なビデオ カードを処理するために、Microsoft Direct3D 11 では、機能レベルという概念が導入されました。 各ビデオ カードは、取り付けられている GPU (グラフィックス処理装置) に応じて、特定のレベルの Microsoft DirectX (DX) 機能を実装します。 機能レベルは、明確に定義された GPU 機能のセットです。 たとえば、11_0 機能レベルでは、Direct3D 11 で実装された機能が実装されます。

デバイスを作成するとき、必要な機能レベルのデバイスの作成を試行できます。 デバイスの作成に成功した場合は、その機能レベルが存在します。失敗した場合は、ハードウェアはその機能レベルをサポートしていません。 低い機能レベルでデバイスを再作成してみることも、アプリケーションの終了を選択することもできます。

機能レベルの基本的な特性を次に示します。

  • すべてのDirect3D 12ドライバーは、機能レベル 11_0 以上になります。
  • デバイスの作成を許可する GPU は、その機能レベルを満たすか上回る機能を持ちます。
  • 機能レベルには、以前または下位の機能レベルの機能が必ず含まれます。
  • 機能レベルでは、パフォーマンスは示されず、機能のみ示されます。 パフォーマンスは、ハードウェアの実装によって決まります。
  • D3D12CreateDevice を呼び出すと、機能レベルが選択されます。
  • サポートされている機能 (特に、次の表で "オプション" とされている機能。これらの機能をハードウェアはサポートしている場合がありますが、必ずサポートしているという訳ではありません) について詳しくは、CheckFeatureSupport を呼び出してください。

特定の機能レベルでハードウェア以外の種類のデバイスを作成する場合の制限については、「WARP および参照デバイスの作成の制限」を参照してください。 機能レベルの概要については、「Direct3D 機能レベル」で Direct3D 11 の説明を参照してください。

番号付け方式

ハードウェア機能レベルは、API バージョンと同じではありません。 たとえば、D3D11.3 API がありますが、11_3 のハードウェア機能レベルはありません。 機能レベルは、 D3D_FEATURE_LEVEL 列挙型で定義されます。

次の 3 つの個別の番号付け方式があります。

  • Direct3D のバージョンではピリオドが使用される (例: Direct3D 12.0)。
  • シェーダー モデルではピリオドが使用される (例: シェーダー モデル 5.1)。
  • 機能レベルではアンダースコアが使用されます。たとえば、機能レベル 12_0 です。

機能レベルのサポート

各 Direct3D 機能レベルで、次の機能を使用できます。

1 番上の行の見出しは Direct3D 機能レベルです。 左側の列の見出しは機能です。

機能 \ 機能レベル 12_1⁰ 12_0⁰ 11_1¹ 11_0
シェーダー モデル 6.0 6.0 6.0/5.1² 6.0/5.1²
リソース バインディング層 Tier2³ Tier2³ Tier1³ Tier1³
タイル リソース Tier2³ Tier2³ オプション オプション
保守的なラスター化 Tier1³ オプション 省略可能 いいえ
ラスタライザー順序指定ビュー はい 省略可能 省略可能 いいえ
最小/最大フィルター はい はい 省略可能 いいえ
既定バッファーのマップ オプション オプション オプション オプション
シェーダー指定されたステンシル参照値 オプション オプション 省略可能 いいえ
型指定された順序なしのアクセス ビューの読み込み 18 個の形式、および追加オプション 18 個の形式、および追加オプション 3 個の形式、および追加オプション 3 個の形式、および追加オプション
ジオメトリ シェーダー はい はい はい はい
ストリーム出力 はい はい はい はい
DirectCompute/計算シェーダー はい はい はい はい
ハル シェーダーおよびドメイン シェーダー はい はい はい はい
テクスチャ リソース配列 はい はい はい はい
キューブマップ リソース配列 はい はい はい はい
BC1 から BC7 への圧縮 はい はい はい はい
Alpha-to-coverage はい はい はい はい
論理操作 (出力マージャー) はい はい はい 省略可能
ターゲットに依存しないラスター化 はい はい はい いいえ
ForcedSampleCount 1 による複数のレンダー ターゲット (MRT) はい はい はい 省略可能
UAV 専用レンダリングの最大強制サンプル カウント 16 16 16 8
最大テクスチャ次元 16384 16384 16384 16384
最大キューブマップ次元 16384 16384 16384 16384
最大ボリューム範囲 2048 2048 2048 2048
最大テクスチャ反復 16384 16384 16384 16384
最大異方性 16 16 16 16
最大プリミティブ カウント 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
最大頂点インデックス 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
最大入力スロット 32 32 32 32
同時レンダー ターゲット 8 8 8 8
オクルージョン クエリ はい はい はい はい
個別アルファ ブレンド はい はい はい はい
1 回のミラー はい はい はい はい
頂点要素のオーバーラップ はい はい はい はい
非依存書き込みマスク はい はい はい はい
インスタンス化 はい はい はい はい

 

  • ⁰ Direct3D 11.3 または Direct3D 12 ランタイムが必要です。
  • ¹ Direct3D 11.1 ランタイムが必要です。
  • ² シェーダー モデル 5.0 は、倍精度シェーダー、拡張倍精度シェーダー、SAD4 シェーダー命令、および部分精度シェーダーをオプションでサポートできます。 使用できるシェーダー モデル 5.0 のオプションを判別するには、ID3D12Device::CheckFeatureSupport を呼び出します。 一部の互換性は、実行しているハードウェアによって異なります。シェーダー モデル 5.1 は、使用されている機能レベルに関係なく、DirectX 12 API をサポートするハードウェアでのみサポートされます。 DirectX 11 ハードウェアは、シェーダー モデル 5.0 までサポートします。 DirectX 12 API は、機能レベル 11_0 にのみダウンします。
  • ³ これより上位の層はオプションです。
  • 機能レベル 12_0 と 12_1 には、Direct3D 11.3 または Direct3D 12 ランタイムが必要です。
  • 機能レベル 11_1 には、Direct3D 11.1 ランタイムが必要です。
  • 機能レベル 11_0 には、Direct3D 11.0 ランタイムが必要です。

DXGI 形式のハードウェア サポート

DXGI 形式とハードウェア機能の表を確認するには、以下を参照してください。

機能クエリ

Direct3D 12 とは