> ## 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_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](/reference/graphics/d3d12/structs/d3d12_root_parameter_public) 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](/reference/graphics/d3d12/structs/d3d12_root_parameter_public.md)
- [D3D12_ROOT_PARAMETER1](/reference/graphics/d3d12/structs/d3d12_root_parameter1_public.md)
- [D3D12_STATIC_SAMPLER_DESC](/reference/graphics/d3d12/structs/d3d12_static_sampler_desc_public.md)
- [D3D12_SHADER_BYTECODE](/reference/graphics/d3d12/structs/d3d12_shader_bytecode_public.md)
- [D3D12_SHADER_COMPONENT_MAPPING](/reference/graphics/d3d12/enums/d3d12_shader_component_mapping_public.md)
