> ## 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 (consoles XBOX Series)

> Executa um conjunto de operações de sincronização na parte superior do pipeline gráfico.

Executa um conjunto de operações de sincronização na parte superior do pipeline gráfico.
Essas operações de sincronização são iniciadas pelo processador de comandos da GPU.
Em seguida, o processador de comandos da GPU fica bloqueado até que as operações de sincronização sejam concluídas.

## Sintaxe

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

### Parâmetros

*SyncFlags*   \_In\_\
Tipo: [D3D12XBOX\_SYNC\_FLAGS](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags)

Combinação OR bit a bit de sinalizadores *D3D12XBOX\_SYNC\_FLAGS* que definem o conjunto de operações de sincronização a serem executadas.

*ControlFlags*   \_In\_\
Tipo: [D3D12XBOX\_SYNC\_CONTROL\_FLAGS](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)

Combinação OR bit a bit de sinalizadores *D3D12XBOX\_SYNC\_CONTROL\_FLAGS* que definem um conjunto de modificações de controle de sincronização.

*BaseAddress*   \_In\_\
Tipo: D3D12\_GPU\_VIRTUAL\_ADDRESS

Endereço base do intervalo de memória no qual a sincronização será executada.

*SizeInBytes*   \_In\_\
Tipo: SIZE\_T

Tamanho, em bytes, do intervalo de memória apontado pelo parâmetro *BaseAddress*.  Para aplicar as operações de sincronização a toda a memória, especifique um valor de *BaseAddress* igual a 0 e um *SizeInBytes* igual a *D3D12XBOX\_FLUSH\_RANGE\_ALL*.

### Valor retornado

Tipo: void

## Comentários

A ordem em que as sincronizações especificadas serão executadas é a seguinte:

* *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* e *D3D12XBOX\_SYNC\_FLAG\_DEPTH\_BLOCK\_COHERENCY*
* *D3D12XBOX\_SYNC\_FLAG\_COLOR\_BLOCK\_INVALIDATE* e *D3D12XBOX\_SYNC\_FLAG\_DEPTH\_BLOCK\_INVALIDATE*
* Invalidação e write-backs de GCR (*D3D12XBOX\_SYNC\_FLAG\_nCACHE\_x* e *D3D12XBOX\_SYNC\_FLAG\_GLx*)

Os sinalizadores de controle [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_PFP](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) e
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_CE](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) podem ser usados para especificar quais componentes do
processador de comandos (CP) ficarão bloqueados até que as operações de sincronização especificadas sejam concluídas. Além disso, os sinalizadores
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_IDLE\_SELECT\_ENGINE\_PFP](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) e
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_IDLE\_SELECT\_ENGINE\_CE](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) podem ser usados para controlar quais componentes do
CP participam da operação de ociosidade. No caso de [D3D12XBOX\_SYNC\_FLAG\_SYNC\_CPDMA](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags), o analisador de pré-busca (PFP) tem
sua própria fila de CPDMA, separada do microengine (ME); portanto, o sinalizador [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_CPDMA\_SELECT\_ENGINE\_PFP](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)
pode ser usado para aguardar as solicitações de CPDMA em andamento do PFP em vez das do ME. [D3D12XBOX\_SYNC\_FLAG\_PFP\_SYNC\_ME](/pt-BR/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) pode ser
usado para bloquear o PFP enquanto aguarda as transações de CPDMA do ME.

## Requisitos

**Cabeçalho:** d3d12\_xs.h

**Biblioteca:** \*\*\*\*.lib
**Plataformas compatíveis**: consoles XBOX Series

## Confira também

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


## Related topics

- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [SetPipelineState1 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_setpipelinestate1_public.md)
- [GetPipelineStackSize (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_getpipelinestacksize_public.md)
- [SetPipelineStackSize (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_setpipelinestacksize_public.md)
- [D3D12_RAYTRACING_PIPELINE_FLAGS (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_pipeline_flags_public.md)
