次の方法で共有


非シェーダー可視記述子ヒープ

一部の記述子ヒープは記述子テーブルを介してシェーダーによって参照できませんが、コマンド リストを記録する前にアプリが記述子をステージングするのを支援するため、またはシェーダーに表示されるヒープが必要ないために存在します。

表示されないビュー

前述のシェーダー アクセス可能な記述子ヒープを含むすべての記述子ヒープは、アプリケーションが記述子ヒープに対して選択するメモリ プールと CPU アクセス プロパティに応じて、CPU またはコマンド リストによって操作できます。

シェーダー可視記述子ヒープの場合、これらの記述子ヒープへのシェーダー アクセスを拒否する明らかな理由は、それらがステージングされている間です。 その後、これらのヒープはシェーダーに表示され、コマンド リストの実行時に記述子テーブルを介してアクセスされます。 ただし、シェーダーに表示されるヒープをステージングする必要はなく、直接設定できます。

他の記述子は、その内容をコマンド リストに直接記録することで、パイプラインにバインドされます。 これらの記述子は、コマンド リスト レコード時にビュー パラメーターを変換するためだけに機能します。 これらのヒープは常に非シェーダー表示であり、次のものが含まれます。

  • レンダー ターゲット ビュー (RTV)
  • 深度ステンシル ビュー (DSV)

インデックス バッファー ビュー (IBV)、頂点バッファー ビュー (VBV)、およびストリーム出力ビュー (SOV) は API メソッドに直接渡されます。特定のヒープの種類はありません。

(たとえば、OMSetRenderTargetsなどの呼び出しで) コマンド リストに記録した後、この呼び出しの記述子を保持するために使用されるメモリは、呼び出し後すぐに再利用できます。

記述子テーブルでも、アプリでコマンド リストの記録時に (実行時にテーブル ポインターを逆参照するのではなく) テーブルの内容を記録することを実装で選択できるオプションがあります。

概要

シェーダーが表示され、CPU 書き込み専用 非シェーダー表示、CPU 読み取り/書き込み
CBV、SRV、UAV はい はい
SAMPLER する はい はい
RTV いいえ はい
DSV いいえ はい

 

記述子ヒープ