Pular para o conteúdo principal
Substituição seletiva dos parâmetros de inicialização do objeto de estado de pipeline de computação.

Sintaxe

Parâmetros

pLaunchParameters   _In_opt_
Tipo: D3D12XBOX_COMPUTE_SHADER_LAUNCH_PARAMETERS*
Um ponteiro para os parâmetros de inicialização do compute shader a serem substituídos no objeto de estado de pipeline.

Valor retornado

Tipo: void Nenhum valor retornado.

Comentários

Usado para substituir seletivamente os tamanhos de LDS e de grupo de threads e os parâmetros de modo WGP/CU das configurações de inicialização do objeto de estado de pipeline de computação definido no momento. A função permite alterar configurações de forma leve, adequada para casos de uso em que não é possível construir estaticamente todas as permutações necessárias dos objetos de estado de pipeline de computação. Esta função também pode ser usada para dispatches indiretos usando o tipo de argumento D3D12XBOX_INDIRECT_ARGUMENT_TYPE_COMPUTE_SHADER_LAUNCH_PARAMETERSX (consulte D3D12_INDIRECT_ARGUMENT_TYPE) na fila de comandos gráficos.
Você deve chamar SetPipelineState (ou usar o argumento D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PIPELINE_STATE correspondente para defini-lo indiretamente) com um objeto de estado de pipeline de computação antes de usar esta função. Os parâmetros permanecem substituídos até que você defina um novo objeto de estado de pipeline de computação ou que o driver execute uma operação (como uma limpeza ou descompactação de recursos) que, de outra forma, redefina o objeto de estado de pipeline de computação definido no momento.
Ao substituir o tamanho do grupo de threads, seu shader não pode depender dos valores de sistema SV_DispatchThreadID ou SV_GroupIndex, pois eles são calculados usando o tamanho de grupo especificado no momento da compilação do shader (atributo HLSL [numthreads(XSize, YSize, ZSize)] no ponto de entrada do shader). A única exceção a essa limitação é quando o shader foi originalmente compilado como um grupo de threads 1D e você altera apenas essa mesma dimensão, o que permite continuar usando SV_GroupIndex.
Se o seu shader foi compilado com um tamanho de grupo de threads menor ou igual ao tamanho de wave subjacente, o compilador de shader pode eliminar por otimização quaisquer chamadas que você fizer para GroupMemoryBarrier[WithGroupSync]. Se essas condições se aplicarem e você pretender alterar o tamanho do grupo para além de uma única wave, deverá garantir que o shader seja compilado com um tamanho de grupo numthreads acima de uma única wave para impedir essa otimização. Recomendamos definir numthreads no shader como o tamanho máximo de grupo com o qual você pretende executá-lo.

Requisitos

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

Confira também

ID3D12GraphicsCommandList6
Última modificação em 6 de outubro de 2026