Partager via


Instructions - vs_2_x

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

Il existe plusieurs types d’instructions de nuanceur de vertex, comme indiqué dans le tableau. Les colonnes à 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 - vs... endloop - vs, if bool - vs... sinon... appels endif et sous-routine.
  • Nouveau : ces instructions sont des nouveautés de cette version.

Jeu d'instructions

Name Description Emplacements d’instruction Programme d’installation Arithmétique Contrôle de flux Nouveau
abs - vs Valeur absolue 1 x
add - vs Ajouter deux vecteurs 1 x
break - vs Sortir d’une boucle - vs... endloop - vs ou rep... bloc endrep 1 x x
break_comp - vs Sortir conditionnellement d’une boucle - vs... endloop - vs ou rep... bloc endrep , avec une comparaison 3 x x
breakp - vs Sortir d’une boucle - vs... endloop - vs ou rep... bloc endrep , basé sur un prédicat 3 x x
call - vs Appeler une sous-routine 2 x
callnz bool - vs Appeler une sous-routine si un registre booléen n’est pas égal à zéro 3 x
callnz pred - vs Appeler une sous-routine si un registre de prédicat n’est pas zéro 3 x x
crs - vs Produit croisé 2 x
dcl_usage entrée (sm1, sm2, sm3 - vs asm) Déclarer des registres de vertex d’entrée (voir Registres - vs_2_x) 0 x
def - vs Définir des constantes 0 x
defb - vs Définir une constante booléenne 0 x
defi - vs Définir une constante entière 0 x
dp3 - vs Produit à points à trois composants 1 x
dp4 - vs Produit à points à quatre composants 1 x
dst - vs Calculer le vecteur de distance 1 x
else - vs Commencer un bloc else - vs 1 x
endif - vs Terminer un si bool - vs... else - vs block 1 x
endloop - vs Fin d’une boucle - vs bloc 2 x
endrep - vs Fin d’un bloc de répétition 2 x
exp - vs Précision totale 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
if_comp - vs Commencez un si bool - vs bloc, avec une comparaison 3 x x
si préd - vs Commencer un si bool - vs bloc avec une condition de prédicat 3 x x
label - vs Étiquette 0 x
lit - vs Calcul de l’éclairage partiel 3 x
log - vs Journal de précision complète .(x) 1 x
logp - vs Journal de précision partielle .(x) 1 x
boucle - vs Loop 3 x
lrp - vs Interpolation linéaire 2 x
m3x2 - vs Multiplier 3x2 2 x
m3x3 - vs Multiplier 3x3 3 x
m3x4 - vs Multiplier 3x4 4 x
m4x3 - vs Multiplier 4x3 3 x
m4x4 - vs Multiplier 4x4 4 x
mad - vs Multiplier et ajouter 1 x
max - vs Maximum 1 x
min - vs Minimum 1 x
mov - vs Déplacer 1 x
mova - vs Déplacer des données d’un registre à virgule flottante vers le registre d’adresses (a0) 1 x
mul - vs Multiplier 1 x
nop - vs Pas d'opération 1 x
nrm - vs Normaliser un vecteur 4D 3 x
pow - vs xy 3 x
rcp - vs Réciproque 1 x
rep - vs Répéter 3 x
ret - vs Fin d’une sous-routine ou d’une main 1 x
rsq - vs Racine carrée réciproque 1 x
setp_comp - vs Définir le registre de prédicat 1 x x
sge - vs Comparaison supérieure ou égale à 1 x
sgn - vs Signer 3 x
sincos - vs Sinus et cosinus 8 x
slt - vs Inférieur à comparer 1 x
sub - vs Soustraire 1 x
Vs Version 0 x

 

Instructions du nuanceur de vertex