> ## 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_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.  <div class="alert">**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.</div> <div> </div> 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](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options3_public.md)
- [D3D12_VIEW_INSTANCING_FLAGS](/reference/graphics/d3d12/enums/d3d12_view_instancing_flags_public.md)
- [D3D12_VIEW_INSTANCING_DESC](/reference/graphics/d3d12/structs/d3d12_view_instancing_desc_public.md)
- [D3D12_RENDER_PASS_TIER](/reference/graphics/d3d12/enums/d3d12_render_pass_tier_public.md)
- [D3D12_CROSS_NODE_SHARING_TIER](/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public.md)
