次の方法で共有


D3D12DDI_PREDICATION_OP列挙 (d3d12umddi.h)

プリディケート操作オプションの値が含まれます。 このメソッドは、述語の結果の述語データが指定された操作と等しい場合に、後続のビデオ操作とリソース操作コマンドが実際には実行されないことを示すために使用されます。

構文

typedef enum D3D12DDI_PREDICATION_OP {
  D3D12DDI_PREDICATION_OP_EQUAL_ZERO,
  D3D12DDI_PREDICATION_OP_NOT_EQUAL_ZERO
} ;

定数

 
D3D12DDI_PREDICATION_OP_EQUAL_ZERO
64 ビット バッファー内のすべてのビットがゼロ (0) の場合に、プリディケーションを有効にします。
D3D12DDI_PREDICATION_OP_NOT_EQUAL_ZERO
64 ビット バッファーの少なくとも 1 つがゼロ (0) でない場合に、プリディケーションを有効にします。

注釈

プリディケーションを使用すると、呼び出し元はコマンド バッファーに if ステートメントを使用できます。 ID3D12CommandList::SetPredication コマンドは、if ステートメントの先頭をマークします。if ステートメントは、ID3D12CommandList::SetPredication の次の呼び出しで、またはコマンド リストが閉じられたときに終了します。 また、predication では、入れ子になった if が の場合、else-if、または else がサポートされていません。 if に対して評価する式は、ID3D12*CommandList::SetPredication 呼び出しにパラメーターとして渡されます。 64 ビット値へのポインターは、D3D12 バッファーと 64 ビットのアラインド バイト オフセットとして渡されます。 操作では、比較を指定します。

式が true と評価された場合、if ステートメント内のコマンドは実行 されません

値自体は、SetPredication コマンドが GPU で実行された後にのみ決定されます。 バッファーの値は、GPU で実行されるときに SetPredication コマンドによって "キャプチャ" される必要があります。これにより、バッファーに対する後続の変更によって、if ステートメントのコマンドが実行されるかどうかが変わるわけではありません。 バッファーに格納されている値は、どこからでも使用できます。 たとえば、クエリ統計の Status 値のデコード、シェーダーによって書き込まれた値などがあります。

コマンド リスト内では、アプリケーションは ID3D12*CommandList::SetPredication を null リソース ポインターで呼び出して、コマンド リスト内の後続のコマンドの割り当てを無効にすることができます。 それ以外の場合、ユーザーが実行のためにコマンド リストを閉じてリセットすると、事前指定状態が無効にリセットされるため、SetPredication はコマンド リスト間で保持されません。

要件

要件
Header d3d12umddi.h (D3d12umddi.h を含む)