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

# WaitX (XBOX Series 主機)

> 提供與 Wait() 相同的功能，但可額外控制等候與快取排清。

提供與 [Wait](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12commandqueue-wait) 相同的功能，但可額外控制哪些命令處理器 (CP)
元件參與等候，以及任何相關聯的快取排清。

## 語法

```cpp theme={null}
HRESULT WaitX(
        ID3D12Fence* pFence,
        UINT64 Value,
        D3D12XBOX_SYNC_PARAMS* pSyncTopOfPipeParams)
```

### 參數

*pFence*   \_In\_\
類型：ID3D12Fence\*

ID3D12Fence 物件的指標。

*Value*   \_In\_\
類型：UINT64

命令佇列等候柵欄達到或超過的值。因此，當 [ID3D12Fence::GetCompletedValue](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12fence-getcompletedvalue)
大於或等於 Value 時，等候就會終止。

*pSyncTopOfPipeParams*   \_In\_opt\_\
類型：[D3D12XBOX\_SYNC\_PARAMS\*](/zh-TW/reference/graphics/d3d12_xs/structs/d3d12xbox_sync_params)

選用的一組管線頂端同步處理與控制指示詞。任何指定的快取排清都會在滿足等候條件之後執行。
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_PFP](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) 和 [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_CE](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)
旗標可用來控制哪些 CP 元件參與等候。

### 傳回值

類型：HRESULT

其中一個 [Direct3D 12 傳回碼](https://msdn.microsoft.com/library/windows/desktop/dn706075\(v=vs.85\).aspx)。

## 備註

呼叫 **WaitX** 而非 **Wait**，可讓您控制哪些 CP 元件參與等候，以及緊接著執行哪些快取排清。這可用來提升效能。例如，
[Wait](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12commandqueue-wait) 會導致 PFP 和 CE 封鎖，直到滿足等候條件為止。但是，除非
您要將處於 D3D12\_RESOURCE\_STATE\_INDIRECT\_ARGS 狀態的資源從計算佇列轉換至直接佇列，否則不需要封鎖 PFP 和 CE。使用此函式時，可以針對
pSyncTopOfPipeParams 傳遞 nullptr，或從 [D3D12XBOX\_SYNC\_PARAMS::ControlFlags](/zh-TW/reference/graphics/d3d12_xs/structs/d3d12xbox_sync_params) 中省略 [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_PFP](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) 和 [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_CE](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) 旗標，
以避免不必要的同步處理。

如需柵欄的相關資訊，請參閱[從 Direct3D 11 移植到 Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/porting-from-direct3d-11-to-direct3d-12#cpugpu-synchronization) 中的 **CPU/GPU 同步處理**。

## 需求

**標頭：** d3d12\_xs.h\
**程式庫：** d3d12\_xs.lib\
**支援的平台：** XBOX Series 主機

## 另請參閱

[D3D12\_SYNC\_CONTROL\_FLAGS](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)\
[Signal2X](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12CommandQueue/methods/id3d12commandqueue_signal2x)\
[SyncBottomOfPipeX](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/methods/id3d12graphicscommandlist6_syncbottomofpipex)\
[SyncTopOfPipeX](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/methods/id3d12graphicscommandlist6_synctopofpipex)\
[ID3D12CommandQueue](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/id3d12commandqueue)


## Related topics

- [Wait](/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_wait_public.md)
- [使用 GDKX 建置並執行你的第一個主機遊戲](/zh-TW/home/build-first-title/first-console-title-walkthrough.md)
- [XBOX Series X|S 總覽](/zh-TW/paths/series-xs/overview.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
- [Play Anywhere(主機 + PC)總覽](/zh-TW/paths/play-anywhere/overview.md)
