> ## 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 (família XBOX One)

> Envia uma matriz de listas de comandos para execução.

Envia uma matriz de listas de comandos para execução.

## Sintaxe

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

### Parâmetros

*Count*   \_In\_\
Tipo: UINT

O número de listas de comandos a serem executadas.

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

A matriz de listas de comandos [ID3D12CommandList](https://msdn.microsoft.com/library/windows/desktop/dn770465%28v=vs.85%29.aspx) a serem executadas.

### Valor retornado

Tipo: void

## Comentários

O aplicativo de chamada deve garantir que a GPU (unidade de processamento gráfico) não esteja lendo no momento nenhuma das listas de comandos enviadas de uma execução anterior.

Para reduzir os custos fixos associados aos comandos enviados à GPU, os desenvolvedores de aplicativos são incentivados a agrupar as execuções de listas de comandos em lotes.

### Execução assíncrona

É permitido (como uma extensão do XBOX) executar uma lista de comandos antes que ela tenha sido fechada e continuar gravando comandos na lista. Se uma lista de comandos executada em uma fila ainda não tiver sido fechada, todo o trabalho subsequente emitido para essa fila ficará retido e não será enviado à GPU até que **Close** seja chamado na lista de comandos. O suporte à execução assíncrona inclui listas de comandos gráficos (diretas), de computação e DMA.

A execução assíncrona de listas de comandos tem as seguintes restrições:

* Uma lista de comandos aberta executada de forma assíncrona em uma fila não pode ser executada na mesma fila ou em qualquer outra antes que a lista seja fechada. Depois de fechada, ela pode ser executada repetidamente, da forma tradicional.
* O thread responsável por concluir uma lista de comandos executada de forma assíncrona não deve usar a fila na qual essa lista foi executada até que a lista seja fechada. O uso da fila pelo thread pode levar a deadlocks.
* Não há proteção contra um thread executar uma lista de comandos ao mesmo tempo em que outro thread está gravando na lista. A segurança de thread é responsabilidade do título.
* Todas as listas de comandos executadas de forma assíncrona devem ser fechadas antes de uma chamada a **Suspend**. Atualmente, o suporte à captura do PIX exige que todas as listas de comandos executadas de forma assíncrona sejam fechadas antes que a chamada a **Present** seja feita.
* Ao gravar comandos na lista depois de executá-la, evite condições de falha de qualquer tipo. Uma falha após a execução produzirá uma lista parcialmente executada que não pode ser concluída. Não é possível identificar os locais de falhas de memória insuficiente e de validação; por esse motivo, o que foi realmente enviado à GPU é incerto, e os recursos referenciados (barreiras, por exemplo) ficam efetivamente em um estado indeterminado.

Após a execução, os comandos gravados em uma lista de comandos são enviados automaticamente à GPU, depois que cada segmento é concluído. O sinalizador **D3D12XBOX\_COMMAND\_LIST\_FLAG\_DISABLE\_AUTOMATIC\_KICKOFFS** pode ser especificado durante a criação da lista de comandos para desabilitar esse envio automático. Para obter mais informações, consulte [D3D12XBOX\_COMMAND\_LIST\_FLAGS](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_command_list_flags).

Para iniciar um envio imediato dos comandos gravados (útil para sincronização dentro da lista de comandos), chame o método de lista de comandos [KickoffX](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_kickoffx) ou [KickoffX](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12xboxdmacommandlist/methods/id3d12xboxdmacommandlist_kickoffx) para forçar a conclusão do segmento atual e seu envio para processamento. **Close** enviará o segmento final da lista de comandos e qualquer outro trabalho pendente na fila de execução.

## Requisitos

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

**Biblioteca:** d3d12\_x.lib

**Plataformas com suporte:** família XBOX One

## Confira também

[ID3D12CommandQueue](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12commandqueue/id3d12commandqueue)


## Related topics

- [CreatePlacedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [ExecuteBundle](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_executebundle_public.md)
- [CreateCommandList](/es/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommandlist_public.md)
- [Directorio de temas NDA: enlaces activos a Microsoft Learn](/es/nda/nda-topic-directory.md)
- [SetPredication](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_setpredication_public.md)
