Instructions - vs_2_0

Cette section contient des informations de référence pour les instructions du nuanceur de vertex version 2_0.

Il existe plusieurs types d’instructions de nuanceur de vertex, comme indiqué dans le tableau. Les colonnes vers la droite signifient ce qui suit :

  • Emplacements d’instruction : nombre d’emplacements d’instruction utilisés par chaque instruction.
  • Configuration - Instructions non arithmétiques. Chaque nuanceur doit avoir une instruction de version et il doit s’agir de la première instruction.
  • Arithmétique : ces instructions fournissent les opérations mathématiques dans un nuanceur.
  • Contrôle de flux - Ces instructions ajoutent des fonctionnalités de contrôle de flux telles que boucle...endloop, si...autre...endif - vs, et appels de sous-routine.
  • Nouveautés : ces instructions sont nouvelles pour cette version.

Jeu d’instructions

Nom Description Emplacements d’instructions Coup monté Arithmétique Contrôle de flux Nouveau
abs - vs Valeur absolue 1 x x
ajouter - vs Ajouter deux vecteurs 1 x
appel - vs Appeler une sous-routine 2 x x
callnz bool - vs Appeler une sous-routine si un registre booléen n’est pas égal à zéro 3 x x
crs - vs Produit vectoriel 2 x x
dcl_usage entrée (sm1, sm2, sm3 - vs asm) Déclarer des registres de vertex d’entrée (voir Registres - vs_2_0) 0 x
def - vs Définir des constantes 0 x
defb - vs Définir une constante booléenne 0 x x
défi - vs Définir une constante entière 0 x x
dp3 - vs Produit à trois composants 1 x
dp4 - vs Produit à quatre composants 1 x
dst - vs Calculer le vecteur de distance 1 x
else - vs Commencer un autre - vs bloc 1 x x
endif - vs Terminer un si bool - vs...else - vs block 1 x x
endloop - vs Fin d’une boucle - vs bloc 2 x x
endrep - vs Fin d’un bloc de répétition 2 x x
exp - vs Précision complète 2x 1 x
expp - vs Précision partielle 2x 1 x
frc - vs Composant fractionnaire 1 x
si bool - vs Commencer un si bool - vs bloc (à l’aide d’une condition booléenne) 3 x x
étiquette - vs Étiquette 0 x x
lit - vs Calcul d’éclairage partiel 3 x
journal - vs Journal de précision complète(x) 1 x
logp - vs Journal de précision partielle (x) 1 x
boucle - vs Boucle 3 x x
lrp - vs Interpolation linéaire 2 x x
m3x2 - vs Multiplication 3x2 2 x
m3x3 - vs Multiplication 3x3 3 x
m3x4 - vs Multiplication 3x4 4 x
m4x3 - vs Multiplication 4x3 3 x
m4x4 - vs Multiplication 4x4 4 x
fou - vs Multiplier et ajouter 1 x
max - vs Maximum 1 x
min - vs Minimum 1 x
mov - vs Bouger 1 x
mova - vs Déplacer des données d’un registre à virgule flottante vers le registre d’adresses (a0) 1 x x
mul - vs Multiplier 1 x
nop - vs Aucune opération 1 x
nrm - vs Normaliser un vecteur 4D 3 x x
pow - vs xy 3 x x
rcp - vs Réciproque 1 x
rep - vs Répéter 3 x x
ret - vs Fin d’une sous-routine ou d’un principal 1 x x
rsq - vs Racine carrée réciproque 1 x
sge - vs Supérieur ou égal à la comparaison 1 x
sgn - vs Signe 3 x x
sincos - vs Sinus et cosinus 8 x x
slt - vs Inférieur à comparer 1 x
sub - vs Soustraire 1 x
vs Version 0 x

 

instructions du nuanceur de vertex