Direct3D の機能レベル
Microsoft Direct3D 11 では、新規および既存のマシンでのビデオ カードの多様性に対応するために、機能レベルの概念が導入されています。 このトピックでは、Direct3D 機能レベルについて説明します。
各ビデオ カードは、取り付けられている GPU (グラフィックス処理装置) に応じて、特定のレベルの Microsoft DirectX (DX) 機能を実装します。 以前のバージョンの Microsoft Direct3D では、ビデオ カードが実装しているバージョンを検出し、それに応じてアプリケーションをプログラミングすることができました。
Direct3D 11 では、機能レベルと呼ばれる新しいパラダイムが導入されます。 機能レベルは、明確に定義された GPU 機能のセットです。 たとえば、9_1 機能レベルでは、Microsoft Direct3D 9 で実装された機能が実装され、シェーダー モデルの機能 ps_2_x と vs_2_xが公開されますが、11_0 機能レベルでは Direct3D 11 で実装された機能が実装されます。
デバイスを作成するとき、必要な機能レベルのデバイスの作成を試行できます。 デバイスの作成に成功した場合は、その機能レベルが存在します。失敗した場合は、ハードウェアはその機能レベルをサポートしていません。 低い機能レベルでデバイスを再作成してみることも、アプリケーションの終了を選択することもできます。 デバイスの作成の詳細については、 D3D11CreateDevice 関数を 参照してください。
機能レベルを使用すると、Direct3D 9、Microsoft Direct3D 10、または Direct3D 11 用のアプリケーションを開発し、9、10、または 11 のハードウェアで実行できます (たとえば、新しい 11 の機能は既存の 9 カードでは実行されません)。 機能レベルのその他の基本的なプロパティを次に示します。
- デバイスの作成を許可する GPU は、その機能レベルを満たすか上回る機能を持ちます。
- 機能レベルには、以前または下位の機能レベルの機能が必ず含まれます。
- 機能レベルでは、パフォーマンスは示されず、機能のみ示されます。 パフォーマンスは、ハードウェアの実装によって決まります。
- Direct3D 11 デバイスを作成するときに機能レベルを選択します。
特定の機能レベルでのハードウェア以外のデバイスの作成に関する制限事項については、「 WARP および参照デバイスの作成に関する制限事項」を参照してください。
設計する機能レベルを決定するのに役立つには、各機能レベルの特徴量を比較します。
「10Level9 リファレンス」セクションでは、さまざまな ID3D11Device メソッドと ID3D11DeviceContext メソッドがさまざまな 10Level9 機能レベルでどのように動作するかの違いを示します。
バージョン番号の形式
Direct3D バージョン、シェーダー モデル、および機能レベルには、3 つの形式があります。
- Direct3D のバージョンではピリオドが使用される (例: Direct3D 12.0)。
- シェーダー モデルではピリオドが使用される (例: シェーダー モデル 5.1)。
- 機能レベルではアンダースコアが使用されます。たとえば、機能レベル 12_0 です。
Direct3D 12機能のサポート (機能レベル 12_2 から 11_0)
一覧表示されている機能レベルでは、次の機能を使用できます。 上部の行の見出しは、機能レベルDirect3D 12。 左側の列の見出しは機能です。 テーブルの 脚注も参照してください。
機能 \ 機能レベル | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
---|---|---|---|---|---|
シェーダー モデル | 6.5 | 5.12 | 5.12 | 5.12 | 5.12 |
WDDM ドライバー モデル | 2.0 | 1.x | 1.x | 1.x | 1.x |
レイトレーシング | レベル 1.1 | オプション | オプション | オプション | オプション |
可変シェーディング レート | 階層 2 | オプション | オプション | オプション | オプション |
メッシュ シェーダー | 階層 1 | オプション | オプション | オプション | オプション |
サンプラーのフィードバック | レベル 0.9 | オプション | オプション | オプション | オプション |
リソース バインド | 階層 3 | 階層 3 | 階層 3 | 階層 3 | 階層 1 |
ルート署名 | 1.1 | 1 | 1 | 1 | 1 |
深度境界テスト | はい | 省略可能 | オプション | オプション | オプション |
書き込みバッファーを即時に作成する | Direct、Compute、Bundle | オプション | オプション | オプション | オプション |
GPU 仮想アドレス ビット | 4010 | 4010 | 4010 | ||
タイル化されたリソース | Tier3 | レベル 26 | レベル 26 | オプション | オプション |
保守的なラスター化 | Tier3 | 階層 16 | オプション | 省略可能 | いいえ |
ラスタライザーの順序ビュー | はい | はい | 省略可能 | 省略可能 | いいえ |
最小/最大フィルター | はい | はい | はい | 省略可能 | いいえ |
既定バッファーのマップ | 該当なし | 省略可能 | オプション | オプション | オプション |
シェーダー指定されたステンシル参照値 | オプション | オプション | オプション | 省略可能 | いいえ |
型指定された順序なしのアクセス ビューの読み込み | 18 個の形式、および追加オプション | 18 個の形式、および追加オプション | 18 個の形式、および追加オプション | 3 個の形式、および追加オプション | 3 個の形式、および追加オプション |
ジオメトリ シェーダー | はい | はい | はい | はい | はい |
ストリーム出力 | はい | はい | はい | はい | はい |
DirectCompute/計算シェーダー | はい | はい | はい | はい | はい |
ハル シェーダーおよびドメイン シェーダー | はい | はい | はい | はい | はい |
機能 \ 機能レベル | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
テクスチャ リソース配列 | はい | はい | はい | はい | はい |
キューブマップ リソース配列 | はい | はい | はい | はい | はい |
BC4/BC5 圧縮 | はい | はい | はい | はい | はい |
BC6H/BC7 圧縮 | はい | はい | はい | はい | はい |
Alpha-to-coverage | はい | はい | はい | はい | はい |
拡張形式 (BGRA など) | はい | はい | はい | はい | はい |
10 ビット XR ハイカラー形式 | はい | はい | はい | はい | はい |
論理操作 (出力マージャー) | はい | はい | はい | はい | 省略可能1 |
ターゲットに依存しないラスター化 | はい | はい | はい | はい | いいえ |
ForcedSampleCount 1 による複数のレンダー ターゲット (MRT) | はい | はい | はい | はい | 省略可能1 |
UAV スロット | 階層化9 | 64 | 64 | 64 | 8 |
すべてのステージでの UAV | はい | はい | はい | はい | いいえ |
機能 \ 機能レベル | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
UAV 専用レンダリングの最大強制サンプル カウント | 16 | 16 | 16 | 16 | 8 |
定数バッファー オフセットと部分更新 | はい | はい | はい | はい | 省略可能1 |
ピクセルあたり 16 ビット (bpp) 形式 | はい | はい | はい | はい | 省略可能1 |
最大テクスチャ次元 | 16384 | 16384 | 16384 | 16384 | 16384 |
最大キューブマップ次元 | 16384 | 16384 | 16384 | 16384 | 16384 |
最大ボリューム範囲 | 2048 | 2048 | 2048 | 2048 | 2048 |
最大テクスチャ反復 | 16384 | 16384 | 16384 | 16384 | 16384 |
最大異方性 | 16 | 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 | 2^32 – 1 | 2^32 – 1 |
最大入力スロット | 32 | 32 | 32 | 32 | 32 |
同時レンダー ターゲット | 8 | 8 | 8 | 8 | 8 |
機能 \ 機能レベル | 12_28 | 12_10 | 12_00 | 11_11 | 11_0 |
オクルージョン クエリ | はい | はい | はい | はい | はい |
個別アルファ ブレンド | はい | はい | はい | はい | はい |
1 回のミラー | はい | はい | はい | はい | はい |
頂点要素のオーバーラップ | はい | はい | はい | はい | はい |
非依存書き込みマスク | はい | はい | はい | はい | はい |
インスタンス化 | はい | はい | はい | はい | はい |
Nonpowers-of-2 conditionally3 | いいえ | いいえ | いいえ | いいえ | いいえ |
Nonpowers-of-2 無条件4 | はい | はい | はい | はい | はい |
さらに、次のフラグが設定されます。
機能 \ 機能レベル | 12_28 |
---|---|
WaveOps | TRUE |
OutputMergerLogicOp | TRUE |
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation | TRUE |
CopyQueueTimestampQueriesSupported | TRUE |
CastingFullyTypedFormatSupported | TRUE |
Int64ShaderOps | TRUE |
Direct3D 11 機能のサポート (機能レベル 12_1 ~ 9_1)
一覧表示されている機能レベルでは、次の機能を使用できます。 一番上の行の見出しは、Direct3D 11 の機能レベルです。 左側の列の見出しは機能です。 テーブルの 脚注も参照してください。
機能 \ 機能レベル | 12_10 | 12_00 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
シェーダー モデル | 5.12 | 5.12 | 5.02 | 5.02 | 4.x | 4.0 | 2.0 (4_0_level_9_3) [vs_2_a/ps_2_x]5 | 2.0 (4_0_level_9_1) | 2.0 (4_0_level_9_1) | ||
WDDM ドライバー モデル | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | ||
タイル化されたリソース | レベル 26 | レベル 26 | オプション | 省略可能 | いいえ | いいえ | いいえ | いいえ | いいえ | ||
保守的なラスター化 | 階層 16 | オプション | 省略可能 | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ | ||
ラスタライザーの順序ビュー | はい | 省略可能 | 省略可能 | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ | ||
最小/最大フィルター | はい | はい | 省略可能 | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ | ||
既定バッファーのマップ | オプション | オプション | オプション | 省略可能 | いいえ | いいえ | いいえ | いいえ | いいえ | ||
シェーダー指定されたステンシル参照値 | オプション | オプション | 省略可能 | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ | ||
型指定された順序なしのアクセス ビューの読み込み | 18 個の形式、および追加オプション | 18 個の形式、および追加オプション | 3 個の形式、および追加オプション | 3 個の形式、および追加オプション | いいえ | いいえ | いいえ | いいえ | いいえ | ||
ジオメトリ シェーダー | はい | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | ||
ストリーム出力 | はい | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | ||
DirectCompute/計算シェーダー | はい | はい | はい | はい | 省略可能 | オプション | 該当なし | 該当なし | 該当なし | ||
ハル シェーダーおよびドメイン シェーダー | はい | はい | はい | はい | いいえ | いいえ | いいえ | いいえ | いいえ | ||
機能 \ 機能レベル | 12_10 | 12_00 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
テクスチャ リソース配列 | はい | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | ||
キューブマップ リソース配列 | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | いいえ | ||
BC4/BC5 圧縮 | はい | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | ||
BC6H/BC7 圧縮 | はい | はい | はい | はい | いいえ | いいえ | いいえ | いいえ | いいえ | ||
Alpha-to-coverage | はい | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | ||
拡張形式 (BGRA など) | はい | はい | はい | はい | 省略可能 | 省略可能 | はい | はい | はい | ||
10 ビット XR ハイカラー形式 | はい | はい | はい | はい | 省略可能 | オプション | 該当なし | 該当なし | 該当なし | ||
論理操作 (出力マージャー) | はい | はい | はい | 省略可能1 | 省略可能1 | 省略可能1 | いいえ | いいえ | いいえ | ||
ターゲットに依存しないラスター化 | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ |
ForcedSampleCount 1 による複数のレンダー ターゲット (MRT) | はい | 省略可能1 | 省略可能1 | 省略可能1 | いいえ | いいえ | いいえ | ||||
UAV スロット | 64 | 64 | 64 | 8 | 1 | 1 | 該当なし | 該当なし | 該当なし | ||
すべてのステージでの UAV | はい | はい | はい | いいえ | いいえ | いいえ | 該当なし | 該当なし | 該当なし | ||
機能 \ 機能レベル | 12_10 | 12_00 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
UAV 専用レンダリングの最大強制サンプル カウント | 16 | 16 | 16 | 8 | 該当なし | 該当なし | 該当なし | 該当なし | 該当なし | ||
定数バッファー オフセットと部分更新 | はい | はい | はい | 省略可能1 | 省略可能1 | 省略可能1 | 可1 | 可1 | 可1 | ||
ピクセルあたり 16 ビット (bpp) 形式 | はい | はい | はい | 省略可能1 | 省略可能1 | 省略可能1 | 省略可能1 | 省略可能1 | 省略可能1 | ||
最大テクスチャ次元 | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 | 2048 | 2048 | ||
最大キューブマップ次元 | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 | 512 | 512 | ||
最大ボリューム範囲 | 2048 | 2048 | 2048 | 2048 | 2048 | 2048 | 256 | 256 | 256 | ||
最大テクスチャ反復 | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 8192 | 2048 | 128 | ||
最大異方性 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 2 | ||
最大プリミティブ カウント | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 1048575 | 1048575 | 65,535 | ||
最大頂点インデックス | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 2^32 – 1 | 1048575 | 1048575 | 65534 | ||
最大入力スロット | 32 | 32 | 32 | 32 | 32 | 16 | 16 | 16 | 16 | ||
同時レンダー ターゲット | 8 | 8 | 8 | 8 | 8 | 8 | 4 | 1 | 1 | ||
機能 \ 機能レベル | 12_28 | 12_10 | 11_11 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
オクルージョン クエリ | はい | はい | はい | はい | はい | はい | はい | はい | いいえ | ||
個別アルファ ブレンド | はい | はい | はい | はい | はい | はい | はい | はい | いいえ | ||
1 回のミラー | はい | はい | はい | はい | はい | はい | はい | はい | いいえ | ||
頂点要素のオーバーラップ | はい | はい | はい | はい | はい | はい | はい | はい | いいえ | ||
非依存書き込みマスク | はい | はい | はい | はい | はい | はい | はい | いいえ | いいえ | ||
インスタンス化 | はい | はい | はい | はい | はい | はい | はい7 | いいえ | いいえ | ||
Nonpowers-of-2 conditionally3 | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ | はい | はい | はい | ||
Nonpowers-of-2 無条件4 | はい | はい | はい | はい | はい | はい | いいえ | いいえ | いいえ |
表の脚注
0 Direct3D 11.3 または Direct3D 12 ランタイムが必要です。
1 Direct3D 11.1 ランタイムが必要です。
2 シェーダー モデル 5.0 以降では、必要に応じて、倍精度シェーダー、拡張倍精度シェーダー、 SAD4 シェーダー命令、部分精度シェーダーをサポートできます。 DirectX 11 で使用できるシェーダー モデル 5.0 オプションを確認するには、 ID3D11Device::CheckFeatureSupport を呼び出します。 一部の互換性は、実行しているハードウェアによって異なります。 シェーダー モデル 5.1 以降は、使用されている機能レベルに関係なく、DirectX 12 API でのみサポートされます。 DirectX 11 では、シェーダー モデル 5.0 までのみサポートされます。 DirectX 12 API は、機能レベル 11_0 にのみダウンします。
3 機能レベル 9_1、9_2、および 9_3 では、ディスプレイ デバイスは、2 つの条件下で 2 の累乗ではないディメンションを持つ 2-D テクスチャの使用をサポートしています。 まず、テクスチャごとに 1 つの MIP マップ レベルのみを作成でき、2 つ目はテクスチャのラップ サンプラー モードを使用できません (つまり、D3D11_SAMPLER_DESCの AddressU、AddressV、AddressW メンバーをD3D11_TEXTURE_ADDRESS_WRAPに設定することはできません)。
4 機能レベル 10_0、10_1、11_0 では、ディスプレイ デバイスは、2 の累乗ではないディメンションを持つ 2-D テクスチャの使用を無条件にサポートします。
5 頂点 シェーダー 2a 256 命令、32 個の一時レジスタ、深度 4 の静的フロー制御、深度 24 の動的フロー制御、およびD3DVS20CAPS_PREDICATION。 ピクセル シェーダー 2x 512 命令、32 個の一時レジスタ、深度 4 の静的フロー制御、深度 24 の動的フロー制御、D3DPS20CAPS_ARBITRARYSWIZZLE、D3DPS20CAPS_GRADIENTINSTRUCTIONS、D3DPS20CAPS_PREDICATION、D3DPS20CAPS_NODEPENDENTREADLIMIT、およびD3DPS20CAPS_NOTEXINSTRUCTIONLIMIT。
6 上位レベルは省略可能です。
7 フィーチャー レベル 9_3 では、サポートされているレンダリング メソッドは Draw、 DrawIndexed、 DrawIndexInstanced のみです。 また、フィーチャー レベル 9_3 では、ポイント リストレンダリングは 描画によるレンダリングでのみサポートされます。
8 Windows 11でサポートされています。
9 Direct3D 12 API では、CBV/SRV/UAV ヒープ内の記述子の数に制限があります。 詳細については、「 ハードウェア層 」を参照してください。 これとは別に、 リソース バインディング層に基づくすべてのステージにわたって、すべての記述子テーブル内の UAV の数に制限があります。
10 A 64 ビット プロセスには、リソースごとおよびプロセスごとに 40 ビットのアドレス空間が必要です。 32 ビット プロセスは、アドレス空間の 31 ビットに制限される場合があります。 API には、プロセスごととリソースごとの 2 つの機能 (上限) があります。 プロセスごとのアドレス空間は、常にリソースごとのアドレス空間以上です。
さまざまなハードウェア機能レベルでのフォーマット サポートの詳細については、以下を参照してください。
- Direct3D 機能レベル 12.1 ハードウェアの DXGI 形式のサポート
- Direct3D 機能レベル 12.0 ハードウェアの DXGI 形式のサポート
- Direct3D 機能レベル 11.1 ハードウェアの DXGI 形式のサポート
- Direct3D 機能レベル 11.0 ハードウェアの DXGI 形式のサポート
- Direct3D 10Level9 形式のハードウェア サポート
- Direct3D 10.1 形式のハードウェア サポート
- Direct3D 10 形式のハードウェア サポート