Поделиться через


структура D3D12DDI_INDIRECT_ARGUMENT_DESC (d3d12umddi.h)

Структура D3D12DDI_INDIRECT_ARGUMENT_DESC описывает косвенный аргумент (косвенный параметр) для использования с сигнатурой команды.

Синтаксис

typedef struct D3D12DDI_INDIRECT_ARGUMENT_DESC {
  D3D12DDI_INDIRECT_ARGUMENT_TYPE Type;
  union {
    struct {
      UINT Slot;
    } VertexBuffer;
    struct {
      UINT RootParameterIndex;
      UINT DestOffsetIn32BitValues;
      UINT Num32BitValuesToSet;
    } Constant;
    struct {
      UINT RootParameterIndex;
    } ConstantBufferView;
    struct {
      UINT RootParameterIndex;
    } ShaderResourceView;
    struct {
      UINT RootParameterIndex;
    } UnorderedAccessView;
    struct {
      UINT RootParameterIndex;
      UINT DestOffsetIn32BitValues;
    } IncrementingConstant;
  };
} D3D12DDI_INDIRECT_ARGUMENT_DESC;

Члены

Type

Значение перечисления D3D12DDI_INDIRECT_ARGUMENT_TYPE , указывающее тип косвенного аргумента. Это значение определяет, какой член объединения используется.

VertexBuffer

VertexBuffer.Slot

Указывает слот, содержащий адрес буфера вершин.

Constant

Constant.RootParameterIndex

Задает корневой индекс константы.

Constant.DestOffsetIn32BitValues

Смещение в 32-разрядных значениях для задания первой константы группы. Поддерживает константы с несколькими значениями в заданном корневом индексе. Записи корневых констант должны быть отсортированы от наименьшего до самого большого DestOffsetIn32BitValues.

Constant.Num32BitValuesToSet

Число 32-разрядных констант, заданных в заданном корневом индексе. Поддерживает константы с несколькими значениями в заданном корневом индексе.

ConstantBufferView

ConstantBufferView.RootParameterIndex

Задает корневой индекс CBV.

ShaderResourceView

ShaderResourceView.RootParameterIndex

Указывает корневой индекс SRV.

UnorderedAccessView

UnorderedAccessView.RootParameterIndex

Указывает корневой индекс UAV.

IncrementingConstant

IncrementingConstant.RootParameterIndex

Индекс в корневой сигнатуре, идентифицирующий корневую константу для обновления.

Field IncrementingConstant.DestOffsetIn32BitValues

Это поле задает смещение в виде 32-разрядных значений (а не байтов) в памяти корневой константы, в которую будет записано добавочное значение. Он определяет положение внутри корневой константы, с которой начинается добавочная константа. Если корневая константа является массивом нескольких 32-разрядных значений, это смещение указывает, какой элемент массива получит первое добавочное значение.

IncrementingConstant.DestOffsetIn32BitValues

Комментарии

Косвенные аргументы используются вместе с сигнатурами команд, чтобы указать тип и структуру данных, которые GPU будет считывать из буфера для выполнения команды, без использования ЦП в каждом отдельном вызове draw или dispatch.

Используйте эту структуру со структурой D3D12DDIARG_CREATE_COMMAND_SIGNATURE_0001 .

Дополнительные сведения см. в разделе Спецификация шейдера сетки .

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1903
Верхняя часть d3d12umddi.h (включая D3d12umddi.h)

См. также раздел

D3D12DDI_INDIRECT_ARGUMENT_TYPE

D3D12DDIARG_CREATE_COMMAND_SIGNATURE_0001