> ## 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](/zh-TW/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist1/id3d12graphicscommandlist1_public)


## Related topics

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