instructions de ps_2_x

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

Il existe plusieurs types d’instructions de nuanceur de pixels, 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 : 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 des instructions.
  • Nouveau : ces instructions sont nouvelles pour cette version.

Jeu d'instructions

Nom Description Emplacements d’instruction Programme d’installation Arithmétique Texture Contrôle de flux Nouveau
abs - ps Valeur absolue 1 x
add - ps Ajouter deux vecteurs 1 x
break - ps Sortir d’un représentant... bloc endrep 1 x x
break_comp - ps Rupture conditionnelle d’un représentant... endrep block, avec une comparaison 3 x x
breakp - ps Sortir d’un représentant... endrep block, basé sur un prédicat 3 x x
call - ps Appeler une sous-routine 2 x x
callnz bool - ps Appeler une sous-routine si un registre booléen n’est pas égal à zéro 3 x x
callnz pred - ps Appeler une sous-routine si un registre de prédicat n’est pas égal à zéro 3 x x
cmp - ps Comparer la source à 0 1 x
crs - ps Produit croisé 2 x
dcl_samplerType (sm2, sm3 - ps asm) Déclarer la dimension de texture d’un échantillonneur 0 x
dcl - (sm2, sm3 - ps asm) Déclarez l’association entre les registres de sortie du nuanceur de vertex et les registres d’entrée du nuanceur de pixels. 0 x
def - ps Définir des constantes 0 x
defb - ps Définir une constante booléenne 0 x x
defi - ps Définir une constante entière 0 x x
dp2add - ps Produit point 2D et ajouter 2 x
dp3 - ps Produit à points 3D 1 x
dp4 - ps Produit à points 4D 1 x
dsx - ps Taux de variation dans la direction x 2 x x
dsy - ps Taux de variation dans la direction y 2 x x
else - ps Commencer un bloc Else 1 x x
endif - ps Terminer un si... else block 1 x x
endrep - ps Fin d’un bloc de répétition 2 x x
exp - ps Précision totale 2x 1 x
frc - ps Composant fractionnaire 1 x
si bool - ps Commencer un bloc if 3 x x
if_comp - ps Commencer un bloc if avec une comparaison 3 x x
si pred - ps Commencer un bloc if avec la prédication 3 x x
label - ps Étiquette 0 x x
log - ps Journal de précision complète .(x) 1 x
lrp - ps Interpolate linéaire 2 x
m3x2 - ps Multiplier 3x2 2 x
m3x3 - ps Multiplier 3x3 3 x
m3x4 - ps Multiplier 3x4 4 x
m4x3 - ps Multiplier 4x3 3 x
m4x4 - ps Multiplier 4x4 4 x
mad - ps Multiplier et ajouter 1 x
max - ps Maximum 1 x
min - ps Minimum 1 x
mov - ps Déplacer 1 x
mul - ps Multiplier 1 x
nop - ps Pas d'opération 1 x
nrm - ps Normalize 3 x
pow - ps xy 3 x
ps Version 0 x
rcp - ps Réciproque 1 x
rep - ps Répéter 3 x x
ret - ps Fin d’une sous-routine 1 x x
rsq - ps Racine carrée réciproque 1 x
setp_comp Définir le registre du prédicat 1 x x
sincos - ps Sinus et cosinus 8 x
sub - ps Soustraire 1 x
texkill - ps Tuer le rendu des pixels Voir la note 1 x
texld - ps_2_0 et plus Échantillonner une texture Voir la remarque 2 x
texldb - ps Échantillonnage de textures avec un biais de niveau de détail de w-component Voir la note 3 x
texldd - ps Échantillonnage de textures avec des dégradés fournis par l’utilisateur 3 x x
texldp - ps Échantillonnage de textures avec division projective par composant w Voir la remarque 4 x

 

Remarques :

  1. Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini, emplacements = 2 ; sinon, emplacements = 1.
  2. Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini et que la texture est une carte de cube, emplacements = 4 ; sinon, emplacement = 1.
  3. Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini, emplacements = 6 ; sinon, emplacements = 1.
  4. Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT n’est pas défini, emplacements = 1 ; Sinon:

Instructions du nuanceur de pixels