> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_INPUT_ELEMENT_DESC

> Describes a single element for the input-assembler stage of the graphics pipeline.

Describes a single element for the input-assembler stage of the graphics pipeline.

## Syntax

```cpp theme={null}
typedef struct D3D12_INPUT_ELEMENT_DESC
{
    LPCSTR SemanticName;
    UINT SemanticIndex;
    DXGI_FORMAT Format;
    UINT InputSlot;
    UINT AlignedByteOffset;
    D3D12_INPUT_CLASSIFICATION InputSlotClass;
    UINT InstanceDataStepRate;
} D3D12_INPUT_ELEMENT_DESC
```

### Members

*SemanticName*\
Type: LPCSTR

The HLSL semantic associated with this element in a shader input-signature. See [HLSL Semantics](https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-semantics) for more info.

*SemanticIndex*\
Type: UINT

The semantic index for the element. A semantic index modifies a semantic, with an integer index number. A semantic index is only needed in a
case where there is more than one element with the same semantic. For example, a 4x4 matrix would have four components each with the semantic
name **matrix**, however each of the four component would have different semantic indices (0, 1, 2, and 3).

*Format*\
Type: DXGI\_FORMAT

A [DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format)-typed value that specifies the format of the element data.

*InputSlot*\
Type: UINT

An integer value that identifies the input-assembler. For more info, see [Input Slots](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics-programming-guide-input-assembler-stage-getting-started). Valid values are between 0 and 15.

*AlignedByteOffset*\
Type: UINT

Optional. Offset, in bytes, to this element from the start of the vertex. Use D3D12\_APPEND\_ALIGNED\_ELEMENT (0xffffffff) for convenience to define the current element directly
after the previous one, including any packing if necessary.

*InputSlotClass*\
Type: D3D12\_INPUT\_CLASSIFICATION

A value that identifies the input data class for a single input slot.

*InstanceDataStepRate*\
Type: UINT

The number of instances to draw using the same per-instance data before advancing in the buffer by one element. This value must be 0 for an
element that contains per-vertex data (the slot class is set to the D3D12\_INPUT\_PER\_VERTEX\_DATA member of [D3D12\_INPUT\_CLASSIFICATION](/reference/graphics/d3d12/enums/d3d12_input_classification_public)).

## Remarks

This structure is a member of the [D3D12\_INPUT\_LAYOUT\_DESC](/reference/graphics/d3d12/structs/d3d12_input_layout_desc_public) structure. A pipeline state object contains an input-layout structure that defines one element being read from an input slot.

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[Core Structures](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)


## Related topics

- [D3D12_INPUT_LAYOUT_DESC](/reference/graphics/d3d12/structs/d3d12_input_layout_desc_public.md)
- [D3D12_INPUT_CLASSIFICATION](/reference/graphics/d3d12/enums/d3d12_input_classification_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS](/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public.md)
- [D3D12_ROOT_SIGNATURE_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public.md)
- [D3D12_VIEW_INSTANCING_DESC](/reference/graphics/d3d12/structs/d3d12_view_instancing_desc_public.md)
