D3D12DDI_INDIRECT_ARGUMENT_DESC structure (d3d12umddi.h)

The D3D12DDI_INDIRECT_ARGUMENT_DESC structure describes an indirect argument (an indirect parameter), for use with a command signature.

Syntax

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;

Members

Type

A D3D12DDI_INDIRECT_ARGUMENT_TYPE enumeration value that specifies the type of indirect argument. This value determines which member of the union is used.

VertexBuffer

VertexBuffer.Slot

Specifies the slot containing the vertex buffer address.

Constant

Constant.RootParameterIndex

Specifies the root index of the constant.

Constant.DestOffsetIn32BitValues

The offset, in 32-bit values, to set the first constant of the group. Supports multi-value constants at a given root index. Root constant entries must be sorted from smallest to largest DestOffsetIn32BitValues.

Constant.Num32BitValuesToSet

The number of 32-bit constants that are set at the given root index. Supports multi-value constants at a given root index.

ConstantBufferView

ConstantBufferView.RootParameterIndex

Specifies the root index of the CBV.

ShaderResourceView

ShaderResourceView.RootParameterIndex

Specifies the root index of the SRV.

UnorderedAccessView

UnorderedAccessView.RootParameterIndex

Specifies the root index of the UAV.

IncrementingConstant

IncrementingConstant.RootParameterIndex

The index within the root signature that identifies the root constant to be updated.

IncrementingConstant.DestOffsetIn32BitValues

This field specifies the offset, in terms of 32-bit values (not bytes), within the root constant's memory where the incremented value will be written. It defines the position within the root constant at which the incrementing constant will start. If the root constant is an array of multiple 32-bit values, this offset indicates which element of the array will receive the first incremented value.

Remarks

Indirect arguments are used in conjunction with command signatures to specify the type and structure of data that the GPU will read from a buffer to execute a command, without the CPU needing to be involved in each individual draw or dispatch call.

Use this structure with the D3D12DDIARG_CREATE_COMMAND_SIGNATURE_0001 structure.

See the Mesh Shader Specification for more information.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1903
Header d3d12umddi.h (include D3d12umddi.h)

See also

D3D12DDI_INDIRECT_ARGUMENT_TYPE

D3D12DDIARG_CREATE_COMMAND_SIGNATURE_0001