Partager via


Instructions - vs_3_0

Cette section contient des informations de référence pour les instructions du nuanceur de vertex version 3_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.
  • Texture : ces instructions prennent en charge la recherche d’adresses de texture.
  • Contrôle de flux : ces instructions ajoutent un contrôle de flux tel que des boucles, des répétitions et des si bool - vs...autre...comparaisons endif.
  • Nouveautés : ces instructions sont nouvelles pour cette version.

Jeu d’instructions

Nom Description Emplacements d’instructions Coup monté Arithmétique Texture Contrôle de flux Nouveau
abs - vs Valeur absolue 1 x
ajouter - vs Ajouter deux vecteurs 1 x
break - vs Sortir d’une boucle - vs...endloop - vs ou rep...endrep block 1 x
break_comp - vs Fractionnement conditionnel d’une boucle - vs...endloop - vs ou rep...endrep bloc, avec une comparaison 3 x
breakp - vs Sortir d’une boucle - vs...endloop - vs ou rep...endrep bloc, basé sur un prédicat 3 x
appel - 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édicats n’est pas égal à zéro 3 x
crs - vs Produit vectoriel 2 x
dcl_usage entrée (sm1, sm2, sm3 - vs asm) Déclarer des registres de vertex d’entrée (voir Registres - vs_3_0) 0 x
dcl_samplerType (sm3 - vs asm) Déclarer la dimension de texture d’un échantillonneur 0 x x
def - vs Définir des constantes 0 x
defb - vs Déclarer une constante booléenne 0 x
défi - vs Déclarer une constante entière 0 x
dp3 - vs Produit à trois composants 1 x
dp4 - vs Produit à quatre composants 1 x
dst - vs Distance 1 x
else - vs Commencer un bloc autre 1 x
endif - vs Mettre fin à un si bool - vs...autre bloc 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 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
if_comp - vs Commencer un si bool - vs bloc, avec une comparaison 3 x
si précédé - vs Commencer un si bool - vs bloc avec une condition de prédicat 3 x
étiquette - vs Étiquette 0 x
lit - vs Calculer l’éclairage 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
lrp - vs Interpolation linéaire 2 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 un registre entier 1 x
mul - vs Multiplier 1 x
nop - vs Aucune opération 1 x
nrm - vs Normaliser 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 1 x
rsq - vs Racine carrée réciproque 1 x
setp_comp - vs Définir le registre de prédicats 1 x
sge - vs Supérieur ou égal à la comparaison 1 x
sgn - vs Signe 3 x
sincos - vs Sinus et cosinus 8 x
slt - vs Inférieur à comparer 1 x
sub - vs Soustraire 1 x
texldl - vs Charge de texture avec niveau de détail réglable par l’utilisateur Voir la note 1 x x
vs Version 0 x

 

Notes:

  • si la texture est une carte de cube, emplacements = 5 ; sinon, emplacements = 2

instructions du nuanceur de vertex