Share via


dcl_input vGSInstanceID (sm5 - asm)

Abilitare la creazione di istanze geometry shader.

dcl_input vGSInstanceID, instanceCount
Elemento Descrizione
vGSInstanceID
[in] ID istanza.
instanceCount
[in] Numero di istanze.

Commenti

Il parametro instanceCount della dichiarazione specifica il numero di istanze che il geometry shader deve eseguire per ogni primitiva di input. Il valore massimo per instanceCount è 32.

Il numero massimo di vertici dichiarati per l'output, tramite dcl_maxOutputVertexCount, si applica singolarmente a ogni istanza.

Il numero di istanze in questa dichiarazione, moltiplicato per il numero massimo di vertici per istanza tramite dcl_maxOutputVertexCount, deve essere <= 1024.

La quantità di dati che un'istanza geometry shader specifica può generare è 1024 scalari massima, convalidata contando tutti i scalari dichiarati per l'input e moltiplicando per il conteggio dei vertici di output dichiarati.

L'uso della creazione di istanze geometry shader aumenta in modo efficace la quantità totale di dati che possono essere generati per ogni primitiva di input. 1024 scalari per una singola istanza restituisce fino a 1024*32 scalari di dati di output in tutte le istanze geometry shader per una singola primitiva di input. Tuttavia, più istanze possono generare il minor numero di vertici che ogni istanza può generare. Una singola istanza (senza istanze) può generare 1024 vertici. Se si dichiara *32 istanze significa che ogni istanza può restituire solo 1024/32 = 32 vertici.

La dichiarazione di creazione di istanze geometry shader rende disponibile al programma un registro di input integer a 32 bit autonomo, vGSInstanceID. Ogni istanza geometry shader è identificata dal valore contenuto in vGSInstanceID [0,1,2...].

vGSInstanceID non fa parte della matrice di vertici di input geometry shader, ad esempio 3 vertici durante l'input di un triangolo. Il registro vGSInstanceID è autonomo, ad esempio vPrimitiveID.

Quando termina ogni istanza geometry shader, è presente un taglio implicito nella topologia di output, quindi le istanze consecutive non dipendono l'una dall'altra.

Anche se l'hardware può eseguire ogni istanza geometry shader in parallelo, l'output di tutte le istanze alla fine viene serializzato come se tutte le chiamate di geometry shader di istanza vengono eseguite in sequenza in un ciclo che esegue l'iterazione di vGSInstanceID da 0 a instanceCount-1, con tagli impliciti della topologia di output alla fine di ogni istanza.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
X

Modello minimo shader

Questa istruzione è supportata nei modelli di shader seguenti:

Modello di shader Supportato
Modello shader 5
Modello shader 4.1 no
Modello shader 4 no
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Assembly modello shader 5 (DirectX HLSL)