リソース バインド
バインディングは、リソース オブジェクトをグラフィックス パイプラインのシェーダーにリンクするプロセスです。
このセクションの内容
トピック | 説明 |
---|---|
リソース バインディングの概要 | DirectX 12 でのリソース バインディングの鍵となるのは、"記述子"、"記述子テーブル"、"記述子ヒープ"、および "ルート署名" の概念です。 |
バインディング モデルにおける Direct3D 11 との違い | DirectX12 でのバインドに関する主な設計上の決定事項の 1 つは、それを他の管理タスクから分離することです。 これにより、特定の潜在的な危険を管理するいくつかの要件がアプリに課せられます。 |
記述子 | 記述子は、D3D12 の単一リソースに対するバインドの主要な単位です。 |
記述子ヒープ | 記述子ヒープは、記述子の連続した割り当てのコレクションです。記述子ごとに 1 つの割り当てがあります。 |
記述子テーブル | 記述子テーブルは、論理的には記述子の配列です。 |
ルート署名 | ルート署名は、グラフィックス パイプラインにバインドされるリソースの種類を定義します。 |
機能のクエリ | アプリケーションで、ID3D12Device::CheckFeatureSupport を呼び出すことで、リソース バインディングやその他の多くの機能のサポート レベルを検出できます。 |
HLSL でのリソース バインディング | このトピックでは、Direct3D 12 で高レベル シェーダー言語 (HLSL) Shader Model 5.1 を使用する特定の機能について説明します。 すべての Direct3D 12 ハードウェアは Shader Model 5.1 をサポートしているため、このモデルのサポートはハードウェアの機能レベルに依存しません。 |
UMA の最適化: CPU アクセス可能なテクスチャと標準スウィズル | 統合メモリ アーキテクチャ (UMA) GPU は、特にモバイル デバイス用に最適化する場合に、個別の GPU よりも効率上の利点を提供します。 GPU が UMA である場合にリソースに CPU アクセス権を付与すると、CPU と GPU の間で発生するコピーの量を減らすことができます。 UMA 設計においてアプリケーションからすべてのリソースに無条件に CPU アクセス権が付与されることはお勧めできませんが、適切なリソースに CPU アクセス権を付与すれば、効率向上の機会が得られます。 個別の GPU の場合とは異なり、CPU は GPU からアクセス可能なすべてのリソースを指すポインターを技術的に備えることができます。 |
順序指定されていないアクセス ビューの型を指定した読み込み | 順序なしアクセス ビュー (UAV) 型指定された読み込みは、シェーダーが特定の DXGI_FORMATを持つ UAV から読み取る機能です。 |
ボリューム タイル リソース | ボリューム (3D) テクスチャは、タイル リソースとして使用できます (タイルの解像度は 3 次元であることに注意します)。 |
サブリソース | リソースをサブリソースに分割する方法と、1 つのサブリソース、複数のサブリソース、またはサブリソースのスライスを参照する方法について説明します。 |