共用方式為


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位緩衝區中至少有一個不是零(0),則啟用述詞。

言論

述詞可讓呼叫端在命令緩衝區中具有if語句。 ID3D12CommandList::SetPredication 命令會標示 if 語句的開頭。if 語句會在下一次呼叫 ID3D12CommandList::SetPredication 或命令清單關閉時結束。 此外,述詞不支援巢狀的 if、else-if 或 else。 要評估 if 的運算式會當做參數傳遞至 ID3D12*CommandList::SetPredication 呼叫。 64 位值的指標會以 D3D12 緩衝區和 64 位對齊位元組位移的形式傳入。 作業會指定比較。

如果表達式評估為 true,if-statement 中的命令 不會執行

只有在 SetPredication 命令在 GPU 上執行之後,才會判斷值本身。 在 GPU 上執行時,SetPredication 命令必須「擷取」緩衝區的值,如此一來,後續對緩衝區的修改就不會變更 if 語句中的命令是否執行。 儲存在緩衝區中的值可能來自任何地方。 範例包括譯碼查詢統計數據狀態值、著色器所寫入的值等等。

在命令清單中,應用程式可以使用 Null 資源指標呼叫 ID3D12*CommandList::SetPredication,以停用命令清單中的後續命令的預先定義。 否則,當使用者關閉並重設命令清單以供執行時,會重設預先定義狀態以停用,因此不會跨命令清單保留 SetPredication。

要求

要求 價值
標頭 d3d12umddi.h (包括 D3d12umddi.h)