dcl_input vGSInstanceID (sm5 - asm)

Habilite la creación de instancias del sombreador de geometría.

dcl_input vGSInstanceID, instanceCount
Elemento Descripción
vGSInstanceID
[in] Identificador de instancia.
instanceCount
[in] Recuento de instancias.

Comentarios

El parámetro instanceCount de la declaración especifica cuántas instancias debe ejecutar el sombreador de geometría para cada primitivo de entrada. El valor máximo de instanceCount es 32.

El número máximo de vértices declarados para la salida, a través de dcl_maxOutputVertexCount, se aplica individualmente a cada instancia.

El recuento de instancias de esta declaración, multiplicado por el número máximo de vértices por instancia a través de dcl_maxOutputVertexCount, debe ser <= 1024.

La cantidad de datos que puede emitir una instancia de sombreador de geometría determinada es 1024 escalares como máximo, validado contando todos los escalares declarados para la entrada y multiplicando por el recuento de vértices de salida declarados.

El uso de instancias de sombreador de geometría aumenta eficazmente la cantidad total de datos que se pueden emitir por primitivo de entrada. 1024 escalares para una sola instancia produce hasta 1024*32 escalares de datos de salida en todas las instancias del sombreador de geometría para un único primitivo de entrada. Sin embargo, cuantos más instancias, menos vértices puede emitir cada instancia. Una sola instancia (sin instancias) puede emitir vértices 1024. Si declara *32 instancias, significa que cada instancia solo puede generar 1024/32 = 32 vértices.

La declaración de creación de instancias del sombreador de geometría pone a disposición del programa un registro de entrada entero de 32 bits independiente, vGSInstanceID. Cada instancia del sombreador de geometría se identifica mediante el valor contenido en vGSInstanceID [0,1,2...].

vGSInstanceID no forma parte de la matriz de vértices de entrada del sombreador de geometría (por ejemplo, 3 vértices al introducir un triángulo). El registro vGSInstanceID se encuentra por sí mismo, como vPrimitiveID.

Cuando finaliza cada instancia del sombreador de geometría, hay un corte implícito en la topología de salida, por lo que las instancias consecutivas no dependen entre sí.

Aunque el hardware puede ejecutar cada instancia del sombreador de geometría en paralelo, la salida de todas las instancias al final se serializa como si todas las invocaciones del sombreador de geometría con instancia se ejecutaran secuencialmente en una iteración de bucle vGSInstanceID de 0 a instanceCount-1, con cortes implícitos de topología de salida al final de cada instancia.

Esta instrucción se aplica a las siguientes fases del sombreador:

Vértice Casco Domain Geometría Píxel Compute
X

Modelo de sombreador mínimo

Esta instrucción se admite en los siguientes modelos de sombreador:

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1 no
Modelo de sombreador 4 no
Modelo de sombreador 3 (DirectX HLSL) no
Modelo de sombreador 2 (DirectX HLSL) no
Modelo de sombreador 1 (DirectX HLSL) no

Ensamblado del modelo de sombreador 5 (DirectX HLSL)