> ## 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_SO_DECLARATION_ENTRY

> Describes a vertex element in a vertex buffer in an output slot.

Describes a vertex element in a vertex buffer in an output slot.

## Syntax

```cpp theme={null}
typedef struct D3D12_SO_DECLARATION_ENTRY
{
    UINT Stream;
    LPCSTR SemanticName;
    UINT SemanticIndex;
    BYTE StartComponent;
    BYTE ComponentCount;
    BYTE OutputSlot;
} D3D12_SO_DECLARATION_ENTRY
```

### Members

*Stream*\
Type: UINT

Zero-based, stream number.

*SemanticName*\
Type: LPCSTR

Type of output element; possible values include: **"POSITION"**, **"NORMAL"**, or **"TEXCOORD0"**.
Note that if **SemanticName** is **NULL** then
**ComponentCount** can be greater than 4 and the described entry will be a gap in the stream out where no data will be written.

*SemanticIndex*\
Type: UINT

Output element's zero-based index. Use, for example, if you have more than one texture coordinate stored in each vertex.

*StartComponent*\
Type: BYTE

The component of the entry to begin writing out to. Valid values are 0 to 3. For example, if you only wish to output to the y and z components
of a position, **StartComponent** is 1 and **ComponentCount** is 2.

*ComponentCount*\
Type: BYTE

The number of components of the entry to write out to. Valid values are 1 to 4. For example, if you only wish to output to the y and z components
of a position, **StartComponent** is 1 and **ComponentCount** is 2.  Note that if **SemanticName** is **NULL** then
**ComponentCount** can be greater than 4 and the described entry will be a gap in the stream out where no data will be written.

*OutputSlot*\
Type: BYTE

The associated stream output buffer that is bound to the pipeline.
The valid range for **OutputSlot** is 0 to 3.

## Remarks

Specify an array of **D3D12\_SO\_DECLARATION\_ENTRY** structures in the **pSODeclaration** member of a [D3D12\_STREAM\_OUTPUT\_DESC](/reference/graphics/d3d12/structs/d3d12_stream_output_desc_public) structure.

## 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_STREAM_OUTPUT_DESC](/reference/graphics/d3d12/structs/d3d12_stream_output_desc_public.md)
- [D3D12_QUERY_DATA_SO_STATISTICS](/reference/graphics/d3d12/structs/d3d12_query_data_so_statistics_public.md)
- [D3D12_DESCRIPTOR_RANGE_TYPE](/reference/graphics/d3d12/enums/d3d12_descriptor_range_type_public.md)
- [D3D12_DESCRIPTOR_RANGE_FLAGS](/reference/graphics/d3d12/enums/d3d12_descriptor_range_flags_public.md)
- [D3D12_GLOBAL_ROOT_SIGNATURE](/reference/graphics/d3d12/structs/d3d12_global_root_signature_public.md)
