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 或命令列表关闭时结束。 此外,谓词不支持嵌套(如果为、else-if 或其他)。 要计算 if 的表达式作为参数传递给 ID3D12*CommandList::SetPredication 调用。 指向 64 位值的指针作为 D3D12 缓冲区和 64 位对齐字节偏移量传入。 该作指定比较。
如果表达式的计算结果为 true,则 if-statement 中的命令 未 执行。
该值本身仅在 SetPredication 命令在 GPU 上执行后确定。 在 GPU 上执行时,SetPredication 命令必须“捕获”缓冲区的值,以便对缓冲区的后续修改不会更改 if 语句中的命令是否执行。 存储在缓冲区中的值可以来自任何位置。 示例包括解码查询统计信息状态值、着色器写入的值等。
在命令列表中,应用程序可以使用空资源指针调用 ID3D12*CommandList::SetPredication,以禁用命令列表中的后续命令的谓词。 否则,当用户关闭并重置命令列表以供执行时,将重置谓词状态以禁用,因此不会跨命令列表保留 SetPredication。
要求
要求 | 价值 |
---|---|
标头 | d3d12umddi.h (包括 D3d12umddi.h) |