Argument types for indirect, used for the D3D12_INDIRECT_ARGUMENT_DESC structure. Xbox One has extension members at the end of this enumeration.
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;
| 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. |
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.
Header: Declared in d3d12_x.h.