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 :
- Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini, emplacements = 2 ; sinon, emplacements = 1.
- Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini et que la texture est une carte de cube, emplacements = 4 ; sinon, emplacement = 1.
- Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini, emplacements = 6 ; sinon, emplacements = 1.
- Si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT n’est pas défini, emplacements = 1 ; Sinon:
- si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini et que la texture est une carte de cube, emplacements = 4.
- si D3DD3DPSHADERCAPS2_0_NOTEXINSTRUCTIONLIMIT est défini et que la texture n’est pas une carte de cube, emplacements = 3.
Rubriques connexes