_instructions PS 2 _ x
Cette section contient des informations de référence pour les instructions de nuanceur de pixels version 2 _ x.
Il existe plusieurs types d’instructions de nuanceur de pixels, comme indiqué dans le tableau. Les colonnes à droite indiquent les éléments suivants :
- Emplacements d’instruction : nombre d’emplacements d’instruction utilisés par chaque instruction.
- Programme d’installation : un nuanceur de pixels doit avoir une instruction de version et doit être la première instruction.
- Arithmétique : ces instructions fournissent les opérations mathématiques dans un nuanceur.
- Texture : ces instructions permettent de charger et d’échantillonner des données de texture, et de modifier des coordonnées de texture.
- contrôle de Flow : ces instructions fournissent un contrôle de workflow statique et dynamique à l’exécution des instructions.
- Nouveauté : ces instructions sont nouvelles dans cette version.
Jeu d'instructions
| Nom | Description | Emplacements des instructions | 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 REP... bloc endrep | 1 | x | x | |||
| arrêter _ COMP-PS | Sortir d’un REP de manière conditionnelle... bloc endrep, avec comparaison | 3 | x | x | |||
| breakp-PS | Sortir d’un REP... bloc endrep, basé sur un prédicat | 3 | x | x | |||
| appeler-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 prédit-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 pour un échantillonneur | 0 | x | ||||
| DCL-(SM2, SM3-PS ASM) | Déclarez l’association entre les registres de sortie du nuanceur de sommets et les registres d’entrée de nuanceur de pixels. | 0 | x | ||||
| def-PS | Définir des constantes | 0 | x | ||||
| defb-PS | Définir une constante booléenne | 0 | x | x | |||
| DEFAUT-PS | Définir une constante entière | 0 | x | x | |||
| dp2add-PS | produit 2D point et ajouter | 2 | x | ||||
| DP3-PS | produit point 3D | 1 | x | ||||
| DP4-PS | produit point 4D | 1 | x | ||||
| DSX-PS | Taux de modification de l’axe x | 2 | x | x | |||
| DSY-PS | Taux de variation sur la direction y | 2 | x | x | |||
| else-PS | Commencer un bloc Else | 1 | x | x | |||
| endif-PS | Terminer un if... bloc Else | 1 | x | x | |||
| endrep-PS | Fin d’un bloc REPEAT | 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 | |||
| Si _ COMP-PS | Commencer un bloc If par une comparaison | 3 | x | x | |||
| Si prédit-PS | Commencer un bloc If avec un prédicat | 3 | x | x | |||
| étiquette-PS | Étiquette | 0 | x | x | |||
| Journal-PS | ₂ du journal de précision complète (x) | 1 | x | ||||
| LRP-PS | Interpolation linéaire | 2 | x | ||||
| M3X2-PS | matrice multiplier | 2 | x | ||||
| M3x3-PS | 3 x 3 | 3 | x | ||||
| M3x4-PS | 3x4 multiplier | 4 | x | ||||
| m4x3-PS | 4x3 multiplier | 3 | x | ||||
| M4X4-PS | 4 x 4 | 4 | x | ||||
| Mad-PS | Multiplier et ajouter | 1 | x | ||||
| Max-PS | Maximale | 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 | Mutuel | 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 | ||||
| _COMP setp | Définir le registre de prédicat | 1 | x | x | |||
| SinCos,-PS | Sinus et cosinus | 8 | x | ||||
| sous-PS | Soustraire | 1 | x | ||||
| texkill-PS | Arrêter le rendu de pixel | Voir la remarque 1 | x | ||||
| texld-PS _ 2 _ 0 et haut | Échantillonner une texture | Voir la remarque 2 | x | ||||
| texldb-PS | Échantillonnage de texture avec décalage de niveau de détail par rapport à w-Component | Voir la remarque 3 | x | ||||
| texldd-PS | Échantillonnage de texture avec des dégradés fournis par l’utilisateur | 3 | x | x | |||
| texldp-PS | Échantillonnage de texture avec division projectaire par w-Component | 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 un mappage de cube, emplacements = 4 ; sinon slot = 1.
- Si D3DD3DPSHADERCAPS2 _ 0 _ NOTEXINSTRUCTIONLIMIT est défini, slots = 6 ; sinon, emplacements = 1.
- Si D3DD3DPSHADERCAPS2 _ 0 _ NOTEXINSTRUCTIONLIMIT n’est pas défini, slots = 1 ; sinon :
- Si D3DD3DPSHADERCAPS2 _ 0 _ NOTEXINSTRUCTIONLIMIT est défini et que la texture est un mappage de cube, emplacements = 4.
- Si D3DD3DPSHADERCAPS2 _ 0 _ NOTEXINSTRUCTIONLIMIT est défini et que la texture n’est pas un mappage de cube, emplacements = 3.