Pular para o conteúdo principal
Define os limites de um shader gráfico.

Sintaxe

Membros

MaxWavesWithLateAllocParameterCache
Tipo: UINT
Especifica o número máximo de waves do último estágio que podem ser executadas sem alocar espaço no cache de parâmetros de alocação tardia. Números maiores permitem que mais waves sejam executadas, mas podem causar contenção nas unidades SIMD (Single Instruction Multiple Data), porque os shaders ficarão parados na primeira instrução exp até que haja espaço, possivelmente retendo slots de wave, GPRs e outros recursos compartilhados. “Último estágio” é o estágio que ocorre antes do pixel shader: VS, DS ou GS. No caso do GS, isso afeta apenas a parte de passagem (pass-through) do shader. Para encontrar as configurações ideais para diferentes partes de uma cena, considere usar experimentos do Dr. PIX. Definir MaxWavesWithLateAllocParameterCache com um valor maior que 22 pode levar a deadlocks da GPU. Se esses deadlocks forem causados por uma transição de pipeline da GPU, eles podem ser raros e difíceis de reproduzir. Para evitar esses deadlocks com valores altos no membro MaxWavesWithLateAllocParameterCache, verifique se o membro VSDisableCUMask tem um valor diferente de zero, de modo que pelo menos uma unidade de computação (CU) não esteja executando vertex shaders, evitando assim deadlocks. Normalmente, em relação aos ganhos de desempenho obtidos com a definição de MaxWavesWithLateAllocParameterCache, o impacto no desempenho causado pela operação de mascaramento é insignificante. VSDisableFlags
Tipo: D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS
Campo de bits que especifica as unidades de computação a serem desabilitadas para o vertex shader. reserved0
Tipo: UINT
Reservado. GSDisableFlags
Tipo: D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS
Campo de bits que especifica as unidades de computação a serem desabilitadas para o geometry shader. PSDisableFlags
Tipo: D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS
Campo de bits que especifica as unidades de computação a serem desabilitadas para o pixel shader. VSMaxWaves
Tipo: UINT
Especifica o número máximo de waves de VS que podem ser executadas simultaneamente na GPU. HSMaxWaves
Tipo: UINT
Especifica o número máximo de waves de HS que podem ser executadas simultaneamente na GPU. reserved1
Tipo: UINT
Reservado. GSMaxWaves
Tipo: UINT
Especifica o número máximo de waves de GS que podem ser executadas simultaneamente na GPU. PSMaxWaves
Tipo: UINT
Especifica o número máximo de waves de PS que podem ser executadas simultaneamente na GPU. VSMaxWavesForCuLocking
Tipo: UINT
Especifica o número máximo de waves de VS que permitem a ocorrência de bloqueio de CU. HSMaxWavesForCuLocking
Tipo: UINT
Especifica o número máximo de waves de HS que permitem a ocorrência de bloqueio de CU. reserved2
Tipo: UINT
Reservado. GSMaxWavesForCuLocking
Tipo: UINT
Especifica o número máximo de waves de GS que permitem a ocorrência de bloqueio de CU. PSMaxWavesForCuLocking
Tipo: UINT
Especifica o número máximo de waves de PS que permitem a ocorrência de bloqueio de CU.

Comentários

Com os parâmetros MaxWavesForCuLocking, se o número de waves em execução for menor que esse número máximo e uma nova wave estiver pronta, mas não puder ser agendada em nenhum lugar, a GPU “bloqueará” uma unidade de computação (CU) de modo que nenhuma nova wave de outros estágios (ou pipes) possa usá-la até que a nova wave desse estágio seja finalmente iniciada. Isso ajuda a controlar a “inanição” (starvation). Use a função auxiliar embutida D3D12XboxInitializeDefaultGraphicsShaderLimits para inicializar uma estrutura D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC com os valores padrão.

Requisitos

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

Consulte também

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