Différences du nuanceur de pixels
Emplacements d’instruction
Chaque version prend en charge un nombre différent d’emplacements d’instruction maximum.
Version | Nombre maximal d’emplacements d’instruction |
---|---|
ps_1_1 | 4 textures + 8 arithmétiques |
ps_1_2 | 4 textures + 8 arithmétiques |
ps_1_3 | 4 textures + 8 arithmétiques |
ps_1_4 | 6 textures + 8 arithmétiques par phase |
ps_2_0 | 32 textures + 64 arithmétiques |
ps_2_x | 96 minimum et jusqu’au nombre d’emplacements dans D3DCAPS9. D3DPSHADERCAPS2_0.NumInstructionSlots. Voir D3DPSHADERCAPS2_0. |
ps_3_0 | 512 minimum et jusqu’au nombre d’emplacements dans D3DCAPS9. MaxPixelShader30InstructionSlots. Voir D3DPSHADERCAPS2_0. |
Pour plus d’informations sur les limitations des nuanceurs logiciels, consultez Nuanceurs logiciels.
Limites d’imbrication du contrôle de flux
- Consultez Limitations du contrôle de flux.
fonctionnalités ps_1_x
Nouvelles instructions :
Consultez ps_1_1, ps_1_2, ps_1_3 ps_1_4 Instructions.
Nouveaux registres :
Consultez ps_1_1__ps_1_2__ps_1_3__ps_1_4 Registres.
fonctionnalités ps_2_0
Nouvelles fonctionnalités :
- Trois nouveaux swizzles : .yzxw, .zxyw, .wzyx
- Le nombre de registres temporaires (r#) est passé à 12
- Le nombre de registres float constants (c#) est passé à 32
- Nombre de registres de coordonnées de texture(t#) augmenté à 8
Nouvelles instructions :
- Instructions d’installation - dcl - (sm2, sm3 - ps asm), dcl_samplerType (sm2, sm3 - ps asm)
- Instructions arithmétiques - abs - ps, crs - ps, dp2add - ps, exp - ps, frc - ps, log - ps, m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, m4x4 - ps, max - ps, min - ps, nrm - ps, pow - ps, rcp - ps, rsq - ps, sincos - ps
- Instructions de texture - texld - ps_2_0 et plus (syntaxe différente), texldb - ps, texldp - ps
Nouveaux registres :
fonctionnalités ps_2_x
Nouvelles fonctionnalités (voir D3DPSHADERCAPS2_0.) :
- Contrôle de flux dynamique
- Contrôle de flux statique
- Imbrication pour les instructions de contrôle de flux dynamiques et statiques
- Augmentation du nombre de registres temporaires(r#)
- Swizzle source arbitraire
- Instructions de dégradé
- Prédicat
- Aucune limite de lecture de texture dépendante
- Aucune limite d’instructions de texture
Nouvelles instructions :
- Instructions de contrôle de flux statique - si bool - ps, call - ps, callnz bool - ps, else - ps, endif - ps, rep - ps, endrep - ps, label - ps, ret - ps
- Instructions de contrôle de flux dynamique - break - ps, break_comp - ps, breakp - ps, callnz pred - ps, if_comp - ps, if pred - ps, setp_comp - ps
- Instructions arithmétiques - dsx - ps, dsy - ps
- Instruction de texture - texldd - ps
Nouveaux registres :
fonctionnalités ps_3_0
Nouvelles fonctionnalités :
- Consolidated 10 Input Registers (v#)
- Registre de couleurs d’entrée indexable (v#) avec le registre du compteur de boucles (aL)
- Le nombre de registres temporaires(r#) est passé à 32
- Nombre de registres float constants(c#) augmenté à 224
Nouvelles instructions :
- Instructions d’installation - dcl_semantics (sm3 - ps asm)
- Instructions de flux statique - boucle - ps, endloop - ps
- Instruction arithmétique - sincos - ps (nouvelle syntaxe)
- Instruction de texture - texldl - ps
Nouveaux registres :
- Registre d’entrée (v#)
- Registre de position (vPos)
- Face Register (vFace)
Rubriques connexes