D3D12_INDIRECT_ARGUMENT_TYPE Enumeration

Argument types for indirect, used for the D3D12_INDIRECT_ARGUMENT_DESC structure. Xbox One has extension members at the end of this enumeration.

Syntax

typedef enum D3D12_INDIRECT_ARGUMENT_TYPE
{
    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW,
    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED,
    D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH,
    D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW,
    D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW,
    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT,
    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW,
    D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW,
    D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW,
    D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PADDING = 100,
    D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PRIMITIVE_TOPOLOGY,
    D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DESCRIPTOR_TABLE,
    D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PIPELINE_STATE,
    D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCHX,
    D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCH_L2
} D3D12_INDIRECT_ARGUMENT_TYPE;  

Constants

Constant Description
D3D12_INDIRECT_ARGUMENT_TYPE_DRAW Indicates the type is a Draw call.
D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED Indicates the type is a DrawIndexed call.
D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH Indicates the type is a Dispatch call.
D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW Indicates the type is a vertex buffer view.
D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW Indicates the type is an index buffer view.
D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT Indicates the type is a constant.
D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW Indicates the type is a constant buffer view (CBV).
D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW Indicates the type is a shader resource view (SRV).
D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW Indicates the type is an unordered access view (UAV).
D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PADDING Used to skip data in the argument buffer. The Padding.SizeInBytes argument dictates the amount of padding to skip, in bytes; it must be a multiple of 4 and can’t be more than 64. This member is an Xbox One extension.
D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PRIMITIVE_TOPOLOGY Primitive topology. Used to set the primitive topology. The topology appears in the argument buffer as a single 32-bit dword of type D3D12_PRIMITIVE_TOPOLOGY. The topology must match that of the currently set Graphics Pipeline State. This member is an Xbox One extension.
D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DESCRIPTOR_TABLE Used to set a descriptor table. The DescriptorTable.RootParameterIndex dictates the index of the root parameter to be set. The descriptor table appears in the argument buffer as a 64-bit D3D12_GPU_DESCRIPTOR_HANDLE value. This member is an Xbox One extension.
D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PIPELINE_STATE Used to set a Graphics or Compute Pipeline State object. The Pipeline State object appears in the argument buffer as a 24-byte D3D12XBOX_DESCRIPTOR_PIPELINE_STATE descriptor representing the Pipeline State. The D3D12XBOX_DESCRIPTOR_PIPELINE_STATE descriptor can be queried from a ID3D12PipelineState object by calling ID3D12PipelineState::GetDescriptorX. The microcode fully optimizes all switching of Graphics Pipeline State in the argument buffer. For example, if the same Graphics Pipeline State object is set consecutively, the microcode early-outs without setting any registers; if two Graphics Pipeline State objects are set consecutively that use different shaders, but all of the context register values (such as for blend state) are the same, the microcode forgoes setting any context registers and thereby avoids a context roll. This member is an Xbox One extension.
D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCHX Indicates the type is a ID3D12GraphicsCommandList.DispatchX call. This member is an Xbox One extension.
D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCH_L2 This type is the same as D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH, but includes an additional (direct) parameter of type D3D12XBOX_DISPATCH_FLAGS. This member is an Xbox One extension.

Remarks

This enumeration is used by the D3D12_INDIRECT_ARGUMENT_DESC structure.

Xbox One has extension members at the end of this enumeration. For the non-Xbox-specific version of this enumeration, see D3D12_INDIRECT_ARGUMENT_TYPE.

Requirements

Header: Declared in d3d12_x.h.