перечисление 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) |