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-语句中的命令。

只有在 GPU 上执行 SetPredication 命令后,才会确定值本身。 在 GPU 上执行时,缓冲区的值必须由 SetPredication 命令“捕获”,以便对缓冲区的后续修改不会更改是否执行 if 语句中的命令。 存储在缓冲区中的值可以是来自任何位置的值。 示例包括解码查询统计信息状态值、着色器写入的值等。

在命令列表中,应用程序可以使用空资源指针调用 ID3D12*CommandList::SetPredication,以禁用命令列表中的后续命令的预测。 否则,当用户关闭并重置命令列表以供执行时,预测状态将重置为禁用,因此不会在命令列表中保留 SetPredication。

要求

要求
Header d3d12umddi.h (包括 D3d12umddi.h)