Partager via


instructions ps_3_0

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

Il existe plusieurs types d’instructions de nuanceur de pixels, 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 : un nuanceur de pixels 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 sont utilisées pour charger et échantillonner des données de texture et pour modifier les coordonnées de texture.
  • Contrôle de flux : ces instructions fournissent un contrôle de flux statique et dynamique à l’exécution d’instructions.
  • 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 - ps Valeur absolue 1 x
ajouter - ps Ajouter deux vecteurs 1 x
break - ps Sortir d’une boucle... endloop ou rep... bloc endrep 1 x
break_comp - ps Éclater de manière conditionnelle d’une boucle... endloop ou rep... bloc endrep, avec une comparaison 3 x
breakp - ps éclater d’une boucle... endloop ou rep... bloc endrep, basé sur un prédicat 3 x
appel - ps Appeler une sous-routine 2 x
callnz bool - ps Appeler une sous-routine si un registre booléen n’est pas égal à zéro 3 x
callnz pred - ps Appeler une sous-routine si un registre de prédicats n’est pas égal à zéro 3 x
cmp - ps Comparer la source à 0 1 x
crs - ps Produit vectoriel 2 x
dcl_samplerType (sm2, sm3 - ps asm) Déclarer la dimension de texture d’un échantillonneur 0 x
dcl_semantics (sm3 - ps asm) Déclarer des registres d’entrée et de sortie 0 x x
def - ps Définir des constantes 0 x
defb - ps Définir une constante booléenne 0 x
défi - ps Définir une constante entière 0 x
dp2add - ps Produit point 2D et ajout 2 x
dp3 - ps Produit point 3D 1 x
dp4 - ps Produit point 4D 1 x
dsx - ps Taux de modification dans la direction x 2 x
dsy - ps Taux de variation dans la direction y 2 x
else - ps Commencer un bloc d’autres 1 x
endif - ps Fin d’une si... autre bloc 1 x
endloop - ps Terminer une boucle 2 x x
endrep - ps Fin d’un bloc de répétition 2 x
exp - ps Précision complète 2x 1 x
frc - ps Composant fractionnaire 1 x
si bool - ps Commencer un bloc if 3 x
if_comp - ps Commencer un bloc if avec une comparaison 3 x
si la préversion - ps Commencer un bloc if avec prédication 3 x
étiquette - ps Étiquette 0 x
journal - ps Journal de précision complète(x) 1 x
boucle - ps Boucle 3 x x
lrp - ps Interpolation linéaire 2 x
m3x2 - ps Multiplication 3x2 2 x
m3x3 - ps Multiplication 3x3 3 x
m3x4 - ps Multiplication 3x4 4 x
m4x3 - ps Multiplication 4x3 3 x
m4x4 - ps Multiplication 4x4 4 x
fou - ps Multiplier et ajouter 1 x
max - ps Maximum 1 x
min - ps Minimum 1 x
mov - ps Bouger 1 x
mule - ps Multiplier 1 x
nop - ps Aucune opération 1 x
nrm - ps Normaliser 3 x
pow - ps xy 3 x
ps Version 0 x
rcp - ps Réciproque 1 x
rep - ps Répéter 3 x
ret - ps Fin d’une sous-routine 1 x
rsq - ps Racine carrée réciproque 1 x
setp_comp Définir le registre de prédicats 1 x
sincos - ps Sinus et cosinus 8 x
sub - ps Soustraire 1 x
texkill - ps Supprimer le rendu des pixels 2 x
texld - ps_2_0 et up Exemple de texture Voir la note 1 x
texldb - ps Échantillonnage de texture avec un biais de niveau de détail de w-component 6 x
texldl - ps Échantillonnage de texture avec niveau de détail de w-component Voir la note 2 x x
texldd - ps Échantillonnage de texture avec dégradés fournis par l’utilisateur 3 x
texldp - ps Échantillonnage de texture avec division projective par composant w Voir la note 3 x

 

Notes:

  1. Si la texture est une carte de cube, emplacements = 4 ; sinon, emplacements = 1.
  2. Si la texture est une carte de cube, emplacements = 5 ; sinon, emplacements = 2.
  3. Si la texture est une carte de cube, emplacements = 4 ; sinon, emplacements = 3.

Instructions de nuanceur de pixels