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

> Describes the slot of a root signature version 1.0.

Describes the slot of a root signature version 1.0.

## Syntax

```cpp theme={null}
typedef struct D3D12_ROOT_PARAMETER
{
    D3D12_ROOT_PARAMETER_TYPE ParameterType;
    D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
    D3D12_ROOT_CONSTANTS Constants;
    D3D12_ROOT_DESCRIPTOR Descriptor;
    D3D12_SHADER_VISIBILITY ShaderVisibility;
} D3D12_ROOT_PARAMETER
```

### Members

*ParameterType*\
Type: D3D12\_ROOT\_PARAMETER\_TYPE

A [D3D12\_ROOT\_PARAMETER\_TYPE](/reference/graphics/d3d12/enums/d3d12_root_parameter_type_public)-typed value that  specifies the type of root signature slot. This member determines which type to use in the union below.

*DescriptorTable*\
Type: D3D12\_ROOT\_DESCRIPTOR\_TABLE

A [D3D12\_ROOT\_DESCRIPTOR\_TABLE](/reference/graphics/d3d12/structs/d3d12_root_descriptor_table_public) structure that describes the layout of a descriptor table as a collection of descriptor ranges that appear one after the other in a descriptor heap.

*Constants*\
Type: D3D12\_ROOT\_CONSTANTS

A [D3D12\_ROOT\_CONSTANTS](/reference/graphics/d3d12/structs/d3d12_root_constants_public) structure that describes constants inline in the root signature that appear in shaders as one constant buffer.

*Descriptor*\
Type: D3D12\_ROOT\_DESCRIPTOR

A [D3D12\_ROOT\_DESCRIPTOR](/reference/graphics/d3d12/structs/d3d12_root_descriptor_public) structure that describes descriptors inline in the root signature that appear in shaders.

*ShaderVisibility*\
Type: D3D12\_SHADER\_VISIBILITY

A [D3D12\_SHADER\_VISIBILITY](/reference/graphics/d3d12/enums/d3d12_shader_visibility_public)-typed value that  specifies the shaders that can access the contents of the root signature slot.

## Remarks

A [D3D12\_ROOT\_SIGNATURE\_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public) can contain descriptor tables and inline constants. More capable hardware could support inline descriptors in the root signature as well. The number of bind slots in the root signature are most efficient if kept below a certain size, and can have an upper bound as well.

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

[CD3DX12\_ROOT\_PARAMETER](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/cd3dx12-root-parameter)

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

[Creating a Root Signature](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/creating-a-root-signature)

[D3D12\_ROOT\_PARAMETER1](/reference/graphics/d3d12/structs/d3d12_root_parameter1_public)


## Related topics

- [D3D12_ROOT_PARAMETER_TYPE](/reference/graphics/d3d12/enums/d3d12_root_parameter_type_public.md)
- [D3D12_ROOT_DESCRIPTOR](/reference/graphics/d3d12/structs/d3d12_root_descriptor_public.md)
- [D3D12_ROOT_PARAMETER1](/reference/graphics/d3d12/structs/d3d12_root_parameter1_public.md)
- [D3D12_ROOT_CONSTANTS](/reference/graphics/d3d12/structs/d3d12_root_constants_public.md)
- [D3D12_ROOT_DESCRIPTOR_TABLE](/reference/graphics/d3d12/structs/d3d12_root_descriptor_table_public.md)
