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

# D3D12_SHADER_VISIBILITY

> Specifies the shaders that can access the contents of a given root signature slot.

Specifies the shaders that can access the contents of a given root signature slot.

## Syntax

```cpp theme={null}
typedef enum D3D12_SHADER_VISIBILITY
{
    D3D12_SHADER_VISIBILITY_ALL = 0,
    D3D12_SHADER_VISIBILITY_VERTEX = 1,
    D3D12_SHADER_VISIBILITY_HULL = 2,
    D3D12_SHADER_VISIBILITY_DOMAIN = 3,
    D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
    D3D12_SHADER_VISIBILITY_PIXEL = 5,
    D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
    D3D12_SHADER_VISIBILITY_MESH = 7
} D3D12_SHADER_VISIBILITY
```

## Constants

| Constant | Description |
| - | - |
| D3D12\_SHADER\_VISIBILITY\_ALL | Specifies that all shader stages can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_VERTEX | Specifies that the vertex shader stage can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_HULL | Specifies that the hull shader stage can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_DOMAIN | Specifies that the domain shader stage can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_GEOMETRY | Specifies that the geometry shader stage can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_PIXEL | Specifies that the pixel shader stage can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_AMPLIFICATION | Specifies that the amplification shader stage can access whatever is bound at the root signature slot. |
| D3D12\_SHADER\_VISIBILITY\_MESH | Specifies that the mesh shader stage can access whatever is bound at the root signature slot. |

## Remarks

This enum is used by the [D3D12\_ROOT\_PARAMETER](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_root_parameter_public.md) structure.

The compute queue always uses **D3D12\_SHADER\_VISIBILITY\_ALL** because it has only one active stage. The 3D queue can choose values, but if it uses **D3D12\_SHADER\_VISIBILITY\_ALL**, all shader stages can access whatever is bound at the root signature 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 Enumerations](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-enumerations)


## Related topics

- [D3D12_ROOT_PARAMETER](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_root_parameter_public.md)
- [D3D12_ROOT_PARAMETER1](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_root_parameter1_public.md)
- [D3D12_STATIC_SAMPLER_DESC](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_static_sampler_desc_public.md)
- [D3D12_SHADER_BYTECODE](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_shader_bytecode_public.md)
- [D3D12_SHADER_COMPONENT_MAPPING](https://docs.xbox.com/reference/graphics/d3d12/enums/d3d12_shader_component_mapping_public.md)
