Sintaxe
Membros
FlagsTipo: D3D12XBOX_COMPUTE_SHADER_LAUNCH_PARAMETER_FLAGS Os sinalizadores de controle determinam qual parte das configurações de inicialização será substituída. LDSSize
Tipo: UINT Tamanho de LDS substituído. Esse valor controla a quantidade de memória LDS alocada para cada grupo de threads. O intervalo válido é de 0 a 128 (a unidade é 128 DWORDs). Os grupos de threads podem alocar no máximo 64 KB, independentemente do modo CU/WPG. NumThreadZ
Tipo: UINT Número de threads na dimensão Z do grupo. Máximo de 2048 (consulte os comentários abaixo). NumThreadX
Tipo: UINT Número de threads na dimensão X do grupo. Máximo de 2048 (consulte os comentários abaixo). NumThreadY
Tipo: UINT Número de threads na dimensão Y do grupo. Máximo de 2048 (consulte os comentários abaixo).
Comentários
Essa estrutura é usada na API de lista de comandos SetComputeShaderLaunchParametersX e como valor de argumento indireto ao usar a API por meio do tipo de argumentoD3D12XBOX_INDIRECT_ARGUMENT_TYPE_COMPUTE_SHADER_LAUNCH_PARAMETERSX (consulte D3D12_INDIRECT_ARGUMENT_TYPE) na execução indireta.
Modo WGP versus modo CU
A memória compartilhada de grupo (LDS) pode operar em dois modos diferentes nos consoles XBOX Series. Cada WGP tem 128 KB de memória LDS, que pode ser dividida em duas (modo CU) ou tratada como uma única memória compartilhada (modo WGP). No modo CU, cada uma das unidades de computação (cada uma contendo 2 SIMDs) em um WGP receberá waves pertencentes a grupos de threads diferentes. Cada CU tem acesso a 64 KB de memória LDS por meio de um barramento dedicado, permitindo um total de 2 * 128 = 256 bytes/clock de transferência de dados. As waves dentro de cada CU compartilham um pool físico de 256 KB para VGPRs. No modo WPG, todos os 4 SIMDs dentro de um WGP recebem waves do mesmo grupo de threads. Todos os 128 KB de memória LDS podem ser acessados como um único pool, mas isso ocorre por meio de apenas um dos barramentos físicos presentes, o que significa que a taxa de transferência de dados é limitada a 128 bytes/clock. As waves compartilham um pool físico de 512 KB para VGPRs.Tamanhos de grupo de threads
Nos consoles XBOX Series, o tamanho máximo do grupo de threads é de 32 waves, independentemente da largura da wave. Isso significa que um compute shader compilado como wave-64 (o padrão) oferece suporte a tamanhos de grupo de threads de até 2048 (NumThreadX * NumThreadY * NumThreadZ) threads, enquanto o mesmo shader compilado como wave-32 só oferece suporte a grupos de até 1024 threads. Você pode habilitar a compilação wave-32 definindo o define __XBOX_ENABLE_WAVE32 como 1.
Requisitos
Cabeçalho: d3d12_xs.hPlataformas com suporte: consoles XBOX Series
