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

# SyncTopOfPipeX (XBOX Series 主機)

> 在圖形管線頂部執行一組同步作業。

在圖形管線頂部執行一組同步作業。
這些同步作業由 GPU 命令處理器起始。
接著 GPU 命令處理器會封鎖，直到同步作業完成為止。

## 語法

```cpp theme={null}
void SyncTopOfPipeX(  
         D3D12XBOX_SYNC_FLAGS SyncFlags,  
         D3D12XBOX_SYNC_CONTROL_FLAGS ControlFlags,  
         D3D12_GPU_VIRTUAL_ADDRESS BaseAddress,  
         SIZE_T SizeInBytes  
)  
```

### 參數

*SyncFlags*   \_In\_\
類型：[D3D12XBOX\_SYNC\_FLAGS](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags)

*D3D12XBOX\_SYNC\_FLAGS* 旗標的位元 OR 組合，定義要執行的同步作業集。

*ControlFlags*   \_In\_\
類型：[D3D12XBOX\_SYNC\_CONTROL\_FLAGS](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)

*D3D12XBOX\_SYNC\_CONTROL\_FLAGS* 旗標的位元 OR 組合，定義一組同步控制修改。

*BaseAddress*   \_In\_\
類型：D3D12\_GPU\_VIRTUAL\_ADDRESS

要執行同步處理之記憶體範圍的基底位址。

*SizeInBytes*   \_In\_\
類型：SIZE\_T

*BaseAddress* 參數所指向之記憶體範圍的大小 (以位元組為單位)。若要將同步作業套用至所有記憶體，請將 *BaseAddress* 值指定為 0，並將 *SizeInBytes* 指定為 *D3D12XBOX\_FLUSH\_RANGE\_ALL*。

### 傳回值

類型：void

## 備註

指定之同步處理的執行順序如下：

* *D3D12XBOX\_SYNC\_FLAG\_SYNC\_CPDMA*
* *D3D12XBOX\_SYNC\_FLAG\_PFP\_SYNC\_ME*
* *D3D12XBOX\_SYNC\_FLAG\_IDLE*
* *D3D12XBOX\_SYNC\_FLAG\_BASE\_COHERENCY*、*D3D12XBOX\_SYNC\_FLAG\_COLOR\_BLOCK\_COHERENCY* 和 *D3D12XBOX\_SYNC\_FLAG\_DEPTH\_BLOCK\_COHERENCY*
* *D3D12XBOX\_SYNC\_FLAG\_COLOR\_BLOCK\_INVALIDATE* 和 *D3D12XBOX\_SYNC\_FLAG\_DEPTH\_BLOCK\_INVALIDATE*
* GCR 失效與回寫 (*D3D12XBOX\_SYNC\_FLAG\_nCACHE\_x* 和 *D3D12XBOX\_SYNC\_FLAG\_GLx*)

控制旗標 [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) 的哪些元件會被封鎖，直到指定的同步作業完成為止。此外，
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_IDLE\_SELECT\_ENGINE\_PFP](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) 和
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_IDLE\_SELECT\_ENGINE\_CE](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) 旗標可用來控制
CP 的哪些元件參與閒置作業。在 [D3D12XBOX\_SYNC\_FLAG\_SYNC\_CPDMA](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags) 的情況下，預先擷取剖析器 (PFP) 有
自己的 CPDMA 佇列，與微引擎 (ME) 分開，因此 [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_CPDMA\_SELECT\_ENGINE\_PFP](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)
旗標可用來等候 PFP 進行中的 CPDMA 要求，而不是 ME 的要求。[D3D12XBOX\_SYNC\_FLAG\_PFP\_SYNC\_ME](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) 可
用來在等候 ME CPDMA 交易時封鎖 PFP。

## 需求

**標頭：** d3d12\_xs.h

**程式庫：** \*\*\*\*.lib
**支援的平台：** XBOX Series 主機

## 另請參閱

[D3D12XBOX\_SYNC\_CONTROL\_FLAGS](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)\
[D3D12XBOX\_SYNC\_FLAGS](/zh-TW/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags)\
[ID3D12GraphicsCommandList6](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/id3d12graphicscommandlist6)\
[SyncBottomOfPipeX](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList6/methods/id3d12graphicscommandlist6_syncbottomofpipex)


## Related topics

- [SetPipelineState1 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_setpipelinestate1_public.md)
- [GetPipelineStackSize (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_getpipelinestacksize_public.md)
- [SetPipelineStackSize (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_setpipelinestacksize_public.md)
- [D3D12_RAYTRACING_PIPELINE_FLAGS (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/enums/d3d12_raytracing_pipeline_flags_public.md)
- [D3D12_RAYTRACING_PIPELINE_CONFIG (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/structs/d3d12_raytracing_pipeline_config_public.md)
