Compartilhar via


dcl_input vGSInstanceID (sm5 – asm)

Habilitar a instanciação do sombreador geometry.

dcl_input vGSInstanceID, instanceCount
Item Descrição
vGSInstanceID
[in] A ID da instância.
instanceCount
[in] A contagem de instâncias.

Comentários

O parâmetro instanceCount da declaração especifica quantas instâncias o sombreador de geometria deve executar para cada primitivo de entrada. O valor máximo para instanceCount é 32.

O número máximo de vértices declarados para saída, por meio de dcl_maxOutputVertexCount, se aplica individualmente a cada instância.

A contagem de instâncias nesta declaração, multiplicada pela contagem máxima de vértice por instância por dcl_maxOutputVertexCount, deve ser <= 1024.

A quantidade de dados que uma determinada instância de sombreador de geometria pode emitir é máxima de 1.024 escalares, validada pela contagem de todos os escalares declarados para entrada e multiplicação pela contagem de vértice de saída declarada.

O uso da instanciação do sombreador de geometria aumenta efetivamente a quantidade total de dados que podem ser emitidos por primitivo de entrada. 1024 escalares para uma única instância produz até 1024*32 escalares de dados de saída em todas as instâncias de sombreador de geometria para um único primitivo de entrada. No entanto, quanto mais instâncias, menos vértices cada instância pode emitir. Uma única instância (sem instanciação) pode emitir 1024 vértices. Se você declarar *32 instâncias, significa que cada instância só pode gerar 1024/32 = 32 vértices.

A declaração de instanciação do sombreador de geometria disponibiliza para o programa um registro de entrada de inteiro autônomo de 32 bits, vGSInstanceID. Cada instância do sombreador de geometria é identificada pelo valor contido em vGSInstanceID [0,1,2...].

vGSInstanceID não faz parte da matriz de vértice de entrada do sombreador geometry (por exemplo, 3 vértices ao inserir um triângulo). O registro vGSInstanceID fica por conta própria, como vPrimitiveID.

Quando cada instância do sombreador de geometria termina, há um corte implícito na topologia de saída, portanto, instâncias consecutivas não dependem umas das outras.

Embora o hardware possa executar cada instância de sombreador de geometria em paralelo, a saída de todas as instâncias no final é serializada como se todas as invocações de sombreador de geometria em instâncias sejam executadas sequencialmente em um loop iterando vGSInstanceID de 0 para instanceCount-1, com cortes implícitos de topologia de saída no final de cada instância.

Esta instrução se aplica aos seguintes estágios de sombreador:

Vértice Casco Domínio Geometry Pixel Computação
X

Modelo de sombreador mínimo

Esta instrução tem suporte nos seguintes modelos de sombreador:

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 não
Modelo de sombreador 4 não
Modelo de Sombreador 3 (DirectX HLSL) não
Modelo de Sombreador 2 (DirectX HLSL) não
Modelo de Sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 5 (DirectX HLSL)