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

> Exécute un ensemble d'opérations de synchronisation en haut du pipeline graphique.

Exécute un ensemble d'opérations de synchronisation en haut du pipeline graphique.
Ces opérations de synchronisation sont lancées par le processeur de commandes du GPU.
Le processeur de commandes du GPU se bloque ensuite jusqu'à la fin des opérations de synchronisation.

## Syntaxe

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

### Paramètres

*SyncFlags*   \_In\_\
Type : [D3D12XBOX\_SYNC\_FLAGS](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags)

Combinaison d'opérations OR au niveau du bit d'indicateurs *D3D12XBOX\_SYNC\_FLAGS* qui définissent l'ensemble des opérations de synchronisation à effectuer.

*ControlFlags*   \_In\_\
Type : [D3D12XBOX\_SYNC\_CONTROL\_FLAGS](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)

Combinaison d'opérations OR au niveau du bit d'indicateurs *D3D12XBOX\_SYNC\_CONTROL\_FLAGS* qui définissent un ensemble de modifications du contrôle de la synchronisation.

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

Adresse de base de la plage de mémoire sur laquelle effectuer la synchronisation.

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

Taille, en octets, de la plage de mémoire désignée par le paramètre *BaseAddress*.  Pour appliquer les opérations de synchronisation à toute la mémoire, spécifiez une valeur *BaseAddress* de 0 et une valeur *SizeInBytes* de *D3D12XBOX\_FLUSH\_RANGE\_ALL*.

### Valeur de retour

Type : void

## Remarques

Les synchronisations spécifiées sont exécutées dans l'ordre suivant :

* *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* et *D3D12XBOX\_SYNC\_FLAG\_DEPTH\_BLOCK\_COHERENCY*
* *D3D12XBOX\_SYNC\_FLAG\_COLOR\_BLOCK\_INVALIDATE* et *D3D12XBOX\_SYNC\_FLAG\_DEPTH\_BLOCK\_INVALIDATE*
* Invalidation et réécritures GCR (*D3D12XBOX\_SYNC\_FLAG\_nCACHE\_x* et *D3D12XBOX\_SYNC\_FLAG\_GLx*)

Les indicateurs de contrôle [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_PFP](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) et
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_TOP\_SELECT\_ENGINE\_CE](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) permettent de spécifier les composants du
processeur de commandes (CP) qui sont bloqués jusqu'à la fin des opérations de synchronisation spécifiées. En outre, les indicateurs
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_IDLE\_SELECT\_ENGINE\_PFP](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) et
[D3D12XBOX\_SYNC\_CONTROL\_FLAG\_IDLE\_SELECT\_ENGINE\_CE](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) permettent de contrôler les composants du
CP qui participent à l'opération d'inactivité. Dans le cas de [D3D12XBOX\_SYNC\_FLAG\_SYNC\_CPDMA](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_flags), l'analyseur de prérécupération (PFP) dispose de
sa propre file d'attente CPDMA, distincte de celle du micromoteur (ME) ; l'indicateur [D3D12XBOX\_SYNC\_CONTROL\_FLAG\_CPDMA\_SELECT\_ENGINE\_PFP](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags)
peut donc être utilisé pour attendre les demandes CPDMA en cours du PFP plutôt que celles du ME. [D3D12XBOX\_SYNC\_FLAG\_PFP\_SYNC\_ME](/fr/reference/graphics/d3d12_xs/enums/d3d12xbox_sync_control_flags) peut être
utilisé pour bloquer le PFP pendant l'attente des transactions CPDMA du ME.

## Configuration requise

**En-tête :** d3d12\_xs.h

**Bibliothèque :** \*\*\*\*.lib
**Plateformes prises en charge :** consoles XBOX Series

## Voir aussi

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


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [SetPipelineState1 (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_setpipelinestate1_public.md)
- [GetPipelineStackSize (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_getpipelinestacksize_public.md)
- [SetPipelineStackSize (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_setpipelinestacksize_public.md)
- [D3D12_RAYTRACING_PIPELINE_CONFIG (consoles XBOX Series)](/fr/reference/graphics/d3d12/structs/d3d12_raytracing_pipeline_config_public.md)
