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

# ExecuteCommandLists (famille XBOX One)

> Soumet un tableau de listes de commandes à exécuter.

Soumet un tableau de listes de commandes à exécuter.

## Syntaxe

```cpp theme={null}
void ExecuteCommandLists(  
         UINT Count,  
         ID3D12CommandList* ppCommandLists  
)  
```

### Paramètres

*Count*   \_In\_\
Type : UINT

Nombre de listes de commandes à exécuter.

*ppCommandLists*   \_In\_reads\_(Count)\
Type : ID3D12CommandList\*

Tableau de listes de commandes [ID3D12CommandList](https://msdn.microsoft.com/library/windows/desktop/dn770465%28v=vs.85%29.aspx) à exécuter.

### Valeur de retour

Type : void

## Remarques

L'application appelante doit s'assurer que le processeur graphique (GPU) n'est pas en train de lire l'une des listes de commandes soumises dans le cadre d'une exécution précédente.

Pour réduire les coûts fixes associés aux commandes soumises au GPU, il est recommandé aux développeurs d'applications de regrouper les exécutions de listes de commandes.

### Exécution asynchrone

Il est permis (en tant qu'extension XBOX) d'exécuter une liste de commandes avant qu'elle ne soit fermée et de continuer à y enregistrer des commandes. Si une liste de commandes exécutée sur une file d'attente n'a pas encore été fermée, tout le travail ultérieur émis vers cette file d'attente sera mis en attente et ne sera pas soumis au GPU tant que **Close** n'aura pas été appelée sur la liste de commandes. La prise en charge de l'exécution asynchrone inclut les listes de commandes graphiques (directes), de calcul et DMA.

L'exécution asynchrone des listes de commandes est soumise aux restrictions suivantes :

* Une liste de commandes ouverte exécutée de façon asynchrone sur une file d'attente ne peut pas être exécutée sur la même file d'attente ni sur une autre avant d'être fermée. Une fois fermée, elle peut être exécutée à plusieurs reprises, de la manière habituelle.
* Le thread chargé de terminer une liste de commandes exécutée de façon asynchrone ne doit pas utiliser la file d'attente sur laquelle cette liste a été exécutée tant que la liste n'est pas fermée. L'utilisation de la file d'attente par le thread pourrait entraîner des interblocages.
* Aucune protection n'est fournie contre l'exécution d'une liste de commandes par un thread pendant qu'un autre thread y enregistre des commandes. La sécurité des threads relève de la responsabilité du titre.
* Toutes les listes de commandes exécutées de façon asynchrone doivent être fermées avant un appel à **Suspend**. Actuellement, la prise en charge de la capture PIX exige que toutes les listes de commandes exécutées de façon asynchrone soient fermées avant l'appel à **Present**.
* Lors de l'enregistrement de commandes dans la liste après son exécution, évitez toute condition d'échec. Un échec après l'exécution produira une liste partiellement exécutée qui ne pourra pas être terminée. Il est impossible de déterminer précisément l'emplacement des échecs de mémoire insuffisante et de validation; pour cette raison, ce qui a réellement été soumis au GPU est incertain, et les ressources référencées (les barrières, par exemple) sont de fait laissées dans un état indéterminé.

Après l'exécution, les commandes enregistrées dans une liste de commandes sont soumises automatiquement au GPU, à la fin de chaque segment. L'indicateur **D3D12XBOX\_COMMAND\_LIST\_FLAG\_DISABLE\_AUTOMATIC\_KICKOFFS** peut être spécifié lors de la création de la liste de commandes pour désactiver cette soumission automatique. Pour plus d'informations, consultez [D3D12XBOX\_COMMAND\_LIST\_FLAGS](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_command_list_flags).

Pour lancer une soumission immédiate des commandes enregistrées (utile pour la synchronisation au sein d'une liste de commandes), appelez la méthode de liste de commandes [KickoffX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_kickoffx) ou [KickoffX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12xboxdmacommandlist/methods/id3d12xboxdmacommandlist_kickoffx) pour forcer la fin du segment en cours et sa soumission pour traitement. **Close** soumettra le dernier segment de la liste de commandes ainsi que tout autre travail en attente dans la file d'attente d'exécution.

## Configuration requise

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

**Bibliothèque :** d3d12\_x.lib

**Plateformes prises en charge :** famille XBOX One

## Voir aussi

[ID3D12CommandQueue](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/id3d12commandqueue)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [CreatePlacedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [ExecuteBundle](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_executebundle_public.md)
- [Compiler et exécuter votre premier titre console GDKX](/fr/home/build-first-title/first-console-title-walkthrough.md)
- [SetPredication](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_setpredication_public.md)
