// d3d12umddi.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The D3D12DDI_INDIRECT_ARGUMENT_DESC structure describes an indirect argument (an indirect parameter), for use with a command signature.
TypeA D3D12DDI_INDIRECT_ARGUMENT_TYPE enumeration value that specifies the type of indirect argument. This value determines which member of the union is used.
VertexBufferVertexBuffer.SlotSpecifies the slot containing the vertex buffer address.
ConstantConstant.RootParameterIndexSpecifies the root index of the constant.
Constant.DestOffsetIn32BitValuesThe 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.Num32BitValuesToSetThe number of 32-bit constants that are set at the given root index. Supports multi-value constants at a given root index.
ConstantBufferViewConstantBufferView.RootParameterIndexSpecifies the root index of the CBV.
ShaderResourceViewShaderResourceView.RootParameterIndexSpecifies the root index of the SRV.
UnorderedAccessViewUnorderedAccessView.RootParameterIndexSpecifies the root index of the UAV.
IncrementingConstantIncrementingConstant.RootParameterIndexThe index within the root signature that identifies the root constant to be updated.
IncrementingConstant.DestOffsetIn32BitValuesThis 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.
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.
D3D12DDI_INDIRECT_ARGUMENT_TYPE
D3D12DDIARG_CREATE_COMMAND_SIGNATURE_0001