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

# SetViewInstanceMask

> 设置一个掩码，用于控制在后续绘制中启用哪些视图实例。

设置一个掩码，用于控制在后续绘制中启用哪些视图实例。

## 语法

```cpp theme={null}
void SetViewInstanceMask(
    UINT Mask
)
```

### 参数

*Mask \[in]*\
类型：UINT

一个掩码，用于指定启用或禁用哪些视图。如果从最低有效位开始的第 <i>i</i> 位被设置，则视图实例 <i>i</i> 被启用。

### 返回值

类型：void

无。

## 备注

视图实例掩码仅影响那些在创建时通过指定 D3D12\_VIEW\_INSTANCING\_FLAG\_ENABLE\_VIEW\_INSTANCE\_MASKING 标志声明视图实例掩码的 PSO。在不支持视图实例化的适配器上，尝试创建声明视图实例掩码的 PSO 将失败。

视图实例掩码默认为 0，这会禁用所有视图。这强制声明视图实例掩码的应用程序显式选择要启用的视图，否则不会渲染任何内容。如果视图实例掩码默认启用所有视图，应用程序可能会忘记禁用未使用的视图，从而导致由于浪费工作而损失性能。

捆绑包不会从其调用者继承视图实例掩码，而是默认为 0。这是因为，如果掩码设置影响实现如何记录绘制，则必须在记录捆绑包时知道该设置。但是，由捆绑包设置的视图实例掩码在捆绑包完成后确实会持久保留给调用者。这些继承语义与 PSO 的语义类似。

对于被掩蔽掉的视图实例，在任何着色器阶段都不会执行依赖于 SV\_ViewID 的着色器代码路径，并且不会执行裁剪、视区处理或光栅化。在渲染过程中检查掩码的实现可能比根本不声明视图实例掩码的 PSO 有轻微的性能损失，但通常可以通过跳过与被掩蔽掉的视图相关的工作所节省的性能来克服该损失。根据跳过的工作的频率和数量，性能提升可能会很显著。

## 要求

**头文件：** d3d12\_xs.h 或 d3d12\_x.h\
**库：** d3d12\_xs.lib 或 d3d12\_x.lib\
**支持的平台**：XBOX Series 主机和 XBOX One 系列

## 另请参阅

[ID3D12GraphicsCommandList1](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist1/id3d12graphicscommandlist1_public)


## Related topics

- [D3D12_VIEW_INSTANCE_LOCATION](/zh-CN/reference/graphics/d3d12/structs/d3d12_view_instance_location_public.md)
- [D3D12_VIEW_INSTANCING_DESC](/zh-CN/reference/graphics/d3d12/structs/d3d12_view_instancing_desc_public.md)
- [chat_manager::set_thread_affinity_mask](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_thread_affinity_mask.md)
- [D3D12_VIEW_INSTANCING_FLAGS](/zh-CN/reference/graphics/d3d12/enums/d3d12_view_instancing_flags_public.md)
- [PFMultiplayerSetThreadAffinityMask](/zh-CN/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetthreadaffinitymask.md)
