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 à 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 des nouveautés de 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’une boucle... endloop ou rep... bloc endrep | 1 | x | ||||
break_comp - ps | Sortir d’une boucle de manière conditionnelle... endloop ou rep... bloc endrep, avec une comparaison | 3 | x | ||||
breakp - ps | sortir d’une boucle... endloop ou rep... bloc endrep, basé sur un prédicat | 3 | x | ||||
call - 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édicat n’est pas zéro | 3 | 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_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 | ||||
defi - ps | Définir une constante entière | 0 | 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 | ||||
dsy - ps | Taux de variation dans la direction y | 2 | x | ||||
else - ps | Commencer un bloc Else | 1 | x | ||||
endif - ps | Terminer un si... else block | 1 | x | ||||
endloop - ps | Mettre fin à une boucle | 2 | x | x | |||
endrep - ps | Fin d’un bloc de répétition | 2 | x | ||||
exp - ps | Précision totale 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 pred - ps | Commencer un bloc if avec la prédication | 3 | x | ||||
label - ps | Étiquette | 0 | x | ||||
log - ps | Journal de précision complète .(x) | 1 | x | ||||
boucle - ps | Loop | 3 | x | 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 | ||||
ret - ps | Fin d’une sous-routine | 1 | x | ||||
rsq - ps | Racine carrée réciproque | 1 | x | ||||
setp_comp | Définir le registre du prédicat | 1 | x | ||||
sincos - ps | Sinus et cosinus | 8 | x | ||||
sub - ps | Soustraire | 1 | x | ||||
texkill - ps | Tuer le rendu des pixels | 2 | x | ||||
texld - ps_2_0 et plus | Échantillonner une texture | Voir la note 1 | x | ||||
texldb - ps | Échantillonnage de textures avec un biais de niveau de détail de w-component | 6 | x | ||||
texldl - ps | Échantillonnage de textures avec le niveau de détail de w-component | Voir la remarque 2 | x | x | |||
texldd - ps | Échantillonnage de textures avec des dégradés fournis par l’utilisateur | 3 | x | ||||
texldp - ps | Échantillonnage de textures avec division projective par composant w | Voir la note 3 | x |
Remarques :
- Si la texture est une carte de cube, emplacements = 4 ; sinon, emplacements = 1.
- Si la texture est une carte de cube, emplacements = 5 ; sinon, emplacements = 2.
- Si la texture est une carte de cube, emplacements = 4 ; sinon, emplacements = 3.
Rubriques connexes