перечисление 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-не выполняются.

Само значение определяется только после выполнения команды SetPredication на GPU. Значение буфера должно быть "захвачено" командой SetPredication при выполнении на GPU, чтобы последующие изменения буфера не изменялись при выполнении команд в операторе if. Значение, хранящееся в буфере, может быть из любого места. Примерами могут быть декодирование значения состояния статистики запроса, значение, записанное шейдером, и т. д.

В списке команд приложения могут вызывать ID3D12*CommandList::SetPredication с пустым указателем ресурса, чтобы отключить предикат для последующих команд в списке команд. В противном случае состояние предикаций сбрасывается до отключенного, когда пользователь закрывает и сбрасывает список команд для выполнения, поэтому SetPredication не сохраняется в списках команд.

Требования

Требование Значение
Заголовок d3d12umddi.h (включая D3d12umddi.h)