Describes an indirect argument (an indirect parameter), for use with a command signature.
typedef struct D3D12_INDIRECT_ARGUMENT_DESC {
D3D12_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;
//
// Xbox extension items:
struct {
uint RootParameterIndex;
}DescriptorTable;
struct {
UINT SizeInBytes;
}Padding;
struct {
D3D12XBOX_DISPATCH_FLAGS Flags;
}DispatchL2;
};
} D3D12_INDIRECT_ARGUMENT_DESC;
Type
A single D3D12_INDIRECT_ARGUMENT_TYPE enumeration constant.
VertexBuffer
Slot
The slot containing the vertex buffer address.
Constant
RootParameterIndex
The root index of the 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.
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
RootParameterIndex
The root index of the CBV.
ShaderResourceView
RootParameterIndex
The root index of the SRV.
UnorderedAccessView
RootParameterIndex
The root index of the UAV.
DescriptorTable
RootParameterIndex
The root parameter index in the descriptor table. This is an Xbox extension for ID3D12GraphicsCommandList::ExecuteIndirect, to support additional state-setting capabilities.
Padding
SizeInBytes
The size of the padding, in bytes. This is an Xbox extension for ID3D12GraphicsCommandList::ExecuteIndirect, to support additional state-setting capabilities.
DispatchL2
DispatchL2 is analogous to D3D11’s DispatchIndirect. It allows for only the ThreadGroupCount dimensions to be provided indirectly, using the D3D12_DISPATCH_ARGUMENTS type.
Flags
A set of D3D12XBOX_DISPATCH_FLAGS given as a direct argument to the command signature; the flags are applied to all ExecuteIndirect calls matching this signature. This is an Xbox extension for ID3D12GraphicsCommandList::ExecuteIndirect, to support additional state-setting capabilities.
This structure is used by the D3D12_COMMAND_SIGNATURE_DESC structure.
Header: Declared in d3d12_x.h.