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 à 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’adresse de texture.
  • Contrôle de flux : ces instructions ajoutent un contrôle de flux, comme des boucles, des répétitions et si bool - vs... sinon... comparaisons endif .
  • Nouveau : ces instructions sont des nouveautés de cette version.

Jeu d'instructions

Name Description Emplacements d’instruction Programme d’installation Arithmétique Texture 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
break_comp - vs Sortir conditionnellement d’une boucle - vs... endloop - vs ou rep... bloc endrep , avec une comparaison 3 x
breakp - vs Sortir d’une boucle - vs... endloop - vs ou rep... bloc endrep , basé sur un prédicat 3 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
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_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
defi - vs Déclarer une constante entière 0 x
dp3 - vs Produit à points à trois composants 1 x
dp4 - vs Produit à points à quatre composants 1 x
dst - vs Distance 1 x
else - vs Commencer un bloc Else 1 x
endif - vs Terminer un si bool - vs... else 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
if bool - vs Commencer un if bool - vs block (à l’aide d’une condition booléenne) 3 x
if_comp - vs Commencez un if bool - vs block, avec une comparaison 3 x
si pred - vs Commencer un if bool - vs block avec une condition de prédicat 3 x
label - vs Étiquette 0 x
lit - vs Calculer l’éclairage 3 x
log - vs Journal de précision complète(x) 1 x
logp - vs Journal de précision partielle(x) 1 x
loop - 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 Multiplication 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 un registre d’entiers 1 x
mul - vs Multiplier 1 x
nop - vs Pas d'opération 1 x
nrm - vs Normalize 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 du prédicat 1 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 à la comparaison 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

 

Remarques :

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

Instructions sur le nuanceur de vertex