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

> Indicates the tier level at which view instancing is supported.

Indicates the tier level at which view instancing is supported.

## Syntax

```cpp theme={null}
typedef enum D3D12_VIEW_INSTANCING_TIER
{
    D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
    D3D12_VIEW_INSTANCING_TIER_1 = 1,
    D3D12_VIEW_INSTANCING_TIER_2 = 2,
    D3D12_VIEW_INSTANCING_TIER_3 = 3
} D3D12_VIEW_INSTANCING_TIER
```

## Constants

| Constant | Description |
| - | - |
| D3D12\_VIEW\_INSTANCING\_TIER\_NOT\_SUPPORTED | View instancing is not supported. |
| D3D12\_VIEW\_INSTANCING\_TIER\_1 | View instancing is supported by draw-call level looping only. |
| D3D12\_VIEW\_INSTANCING\_TIER\_2 | View instancing is supported by draw-call level looping at worst, but the GPU can perform view instancing more efficiently in certain circumstances which are architecture-dependent. |
| D3D12\_VIEW\_INSTANCING\_TIER\_3 | View instancing is supported and instancing begins with the first shader stage that references SV\_ViewID or with rasterization if no shader stage references SV\_ViewID. This means that redundant work is eliminated across view instances when it's not dependent on SV\_ViewID. Before rasterization, work that doesn't directly depend on SV\_ViewID is shared across all views; only work that depends on SV\_ViewID is repeated for each view.  **Note**  If a hull shader produces tessellation factors that are dependent on SV\_ViewID, then tessellation and all subsequent work must be repeated per-view. Similarly, if the amount of geometry produced by the geometry shader depends on SV\_ViewID, then the geometry shader must be repeated per-view before proceeding to rasterization.   View instance masking only effects whether work that directly depends on SV\_ViewID is performed, not the entire loop iteration (per-view). If the view instance mask is non-0, some work that depends on SV\_ViewID might still be performed on masked-off pixels but will have no externally-visible effect; for example, no UAV writes are performed and clipping/rasterization is not invoked. If the view instance mask is 0 no work is performed, including work that's not dependent on SV\_ViewID. |

## 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_FEATURE_DATA_D3D12_OPTIONS3](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options3_public.md)
- [D3D12_VIEW_INSTANCING_FLAGS](https://docs.xbox.com/reference/graphics/d3d12/enums/d3d12_view_instancing_flags_public.md)
- [D3D12_VIEW_INSTANCING_DESC](https://docs.xbox.com/reference/graphics/d3d12/structs/d3d12_view_instancing_desc_public.md)
- [D3D12_RENDER_PASS_TIER](https://docs.xbox.com/reference/graphics/d3d12/enums/d3d12_render_pass_tier_public.md)
- [D3D12_CROSS_NODE_SHARING_TIER](https://docs.xbox.com/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public.md)
