Sintaxe
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 a serem executadas.
Valor retornado
Tipo: voidComentá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.
