Skip to main content
Um método de extensão que permite um controle mais refinado das inicializações do Mesh Shader. É possível inicializar o Amplification Shader ou o Mesh Shader do PSO associado no momento.

Sintaxe

Parâmetros

ThreadGroupCountX   _In_
Tipo: UINT
Todas as invocações do Mesh Shader no XBOX são unidimensionais. Este parâmetro especifica quantos grupos de threads devem ser inicializados. Flags   _In_
Tipo: UINT64
Valor 0: inicializar grupos de threads do Mesh Shader Valor 1: inicializar grupos de threads do Amplification Shader IndirectArgsPointer   _In_
Tipo: UINT64
Ponteiro para os argumentos indiretos de destino nos quais o Amplification Shader gravará.
Os registros gravados têm o formato D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH_X.
Se for usado em uma chamada de execução indireta, o ponteiro precisará apontar para dentro de um recurso de buffer com o sinalizador D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER.
Esse ponteiro precisa estar alinhado a 256 B e não pode ter mais de 40 bits definidos (a ABI o desloca 8 bits para a direita em um valor de 32 bits antes de passá-lo ao sombreador).
O ponteiro deve ser 0 quando o Amplification Shader não estiver selecionado.
O buffer deve ter tamanho suficiente para comportar ThreadGroupCountX instâncias de D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH_X.
PayloadPointer   _In_
Tipo: UINT64
Ponteiro para o destino ou a origem do armazenamento de payload do Mesh Shader.
Se o Amplification Shader estiver selecionado, ele apontará para o local em que o payload por grupo de threads é gravado. O ponteiro de payload deve estar alinhado a 256 B quando usado como destino (a ABI o desloca 8 bits para a direita em um valor de 32 bits antes de passá-lo ao sombreador).
Se o Mesh Shader estiver selecionado, ele apontará para a origem do payload usado no Mesh Shader. O ponteiro de payload deve estar alinhado a 16 B quando usado como origem.
Em ambos os casos, o buffer não pode ter mais de 40 bits definidos.

Valor retornado

Tipo: void

Comentários

Quando um DispatchMesh comum é chamado, o driver usa essencialmente essa funcionalidade, mas fornece a assinatura de comando de execução indireta e os buffers temporários. Aqui estão alguns exemplos de uso
  1. Inicializando apenas um Mesh Shader com um ponteiro de payload passado manualmente
  2. Inicializando um Amplification Shader e, em seguida, executando indiretamente o Mesh Shader

Requisitos

Cabeçalho: d3d12_xs.h Biblioteca: d3d12_xs.lib
Plataformas compatíveis: consoles XBOX Series

Confira também

ID3D12GraphicsCommandList
Last modified on October 6, 2026