D3D12_INDIRECT_ARGUMENT_DESC Structure

Describes an indirect argument (an indirect parameter), for use with a command signature.

Syntax

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;  

Members

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.

Remarks

This structure is used by the D3D12_COMMAND_SIGNATURE_DESC structure.

Requirements

Header: Declared in d3d12_x.h.

See also

ID3D12GraphicsCommandList::ExecuteIndirect