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 ステートメント内のコマンドは実行 。
値自体は、GPU で SetPredication コマンドが実行された後にのみ決定されます。 バッファーの値は、GPU で実行されるときに SetPredication コマンドによって "キャプチャ" される必要があります。これにより、バッファーに対する後続の変更によって、if ステートメント内のコマンドが実行されるかどうかが変わりません。 バッファーに格納されている値は、任意の場所から取得できます。 たとえば、デコード クエリ統計の Status 値、シェーダーによって書き込まれた値などがあります。
コマンド リスト内で、アプリケーションは ID3D12*CommandList::SetPredication を null リソース ポインターで呼び出して、コマンド リスト内の後続のコマンドのプリディケーションを無効にすることができます。 それ以外の場合、ユーザーが実行のためにコマンド リストを閉じてリセットすると、プレディケーション状態が無効にリセットされるため、SetPredication はコマンド リスト間で保持されません。
必要条件
要件 | 価値 |
---|---|
ヘッダー | d3d12umddi.h (D3d12umddi.h を含む) |