dcl_input vGSInstanceID (sm5 - asm)
Activez l’instanciation du nuanceur geometry.
dcl_input vGSInstanceID, instanceCount |
---|
Élément | Description |
---|---|
vGSInstanceID |
[in] ID instance. |
instanceCount |
[in] Nombre de instance. |
Notes
Le paramètre instanceCount de la déclaration spécifie le nombre d’instances que le nuanceur geometry doit exécuter pour chaque primitive d’entrée. La valeur maximale pour instanceCount est 32.
Le nombre maximal de sommets déclarés pour la sortie, via dcl_maxOutputVertexCount, s’applique individuellement à chaque instance.
Le nombre de instance dans cette déclaration, multiplié par le nombre maximal de sommets par instance via dcl_maxOutputVertexCount, doit être <= 1024.
La quantité de données qu’un nuanceur de géométrie donné instance peut émettre est de 1 024 scalaires maximum, validée en comptant tous les scalaires déclarés pour l’entrée et en multipliant par le nombre de sommets de sortie déclarés.
L’utilisation de l’instanciation de nuanceur geometry augmente efficacement la quantité totale de données pouvant être émises par primitive d’entrée. 1024 scalaires pour une seule instance génère jusqu’à 1 024*32 scalaires de données de sortie sur toutes les instances de nuanceur geometry pour une primitive d’entrée unique. Toutefois, plus il y a d’instances, moins chaque instance peut émettre de sommets. Un seul instance (aucune instanciation) peut émettre 1024 sommets. Si vous déclarez *32 instances, cela signifie que chaque instance ne peut générer que 1024/32 = 32 sommets.
La déclaration d’instanciation du nuanceur geometry met à la disposition du programme un registre d’entrée d’entiers 32 bits autonome, vGSInstanceID. Chaque nuanceur de géométrie instance est identifié par la valeur contenue dans vGSInstanceID [0,1,2...].
vGSInstanceID ne fait pas partie du tableau de vertex d’entrée du nuanceur geometry (par exemple, 3 sommets lors de l’entrée d’un triangle). Le registre vGSInstanceID se tient seul, comme vPrimitiveID.
Lorsque chaque nuanceur de géométrie instance se termine, il existe une coupe implicite dans la topologie de sortie, de sorte que les instances consécutives ne dépendent pas les unes des autres.
Bien que le matériel puisse exécuter chaque nuanceur de géométrie instance en parallèle, la sortie de toutes les instances à la fin est sérialisée comme si tous les appels de nuanceur geometry instance s’exécutaient séquentiellement dans une boucle itérant vGSInstanceID de 0 à instanceCount-1, avec des coupes de topologie de sortie implicites à la fin de chaque instance.
Cette instruction s’applique aux étapes de nuanceur suivantes :
Sommet | Coque | Domain | Géométrie | Pixel | Compute |
---|---|---|---|---|---|
X |
Modèle de nuanceur minimal
Cette instruction est prise en charge dans les modèles de nuanceur suivants :
Modèle de nuanceur | Pris en charge |
---|---|
Modèle de nuanceur 5 | Oui |
Modèle de nuanceur 4.1 | non |
Modèle de nuanceur 4 | non |
Nuanceur modèle 3 (DirectX HLSL) | non |
Nuanceur modèle 2 (DirectX HLSL) | non |
Nuanceur Modèle 1 (DirectX HLSL) | non |