Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un nuanceur de pixels programmable est constitué d’un ensemble d’instructions qui fonctionnent sur des données de pixels. Inscrit les données de transfert dans et hors de l’ALU. Vous pouvez appliquer un contrôle supplémentaire pour modifier l’instruction, les résultats ou les données écrites.
- ps_3_0 Instructions contient une liste des instructions disponibles.
- ps_3_0 Registers répertorie les différents types de registres utilisés par l’ALU du nuanceur de pixels.
- modificateurs sont utilisés pour modifier la façon dont une instruction fonctionne.
- masque d’écriture du registre de destination détermine les composants du registre de destination qui sont écrits.
- modificateurs de registre source du nuanceur de pixels modifier les données de registre source avant l’exécution de l’instruction.
- Registre source Swizzling donne un contrôle supplémentaire sur les composants d’inscription lus, copiés ou écrits.
Nouvelles fonctionnalités
Ajoutez un registre de visages. Ajoutez un registre de position. Les registres de couleurs (v#) sont désormais entièrement flottants et les registres de coordonnées de texture (t#) ont été consolidés. Les déclarations d’entrée prennent les noms d’utilisation et plusieurs utilisations sont autorisées pour les composants d’un registre donné.
Contrôle de flux dynamique
L’appareil prend en charge le contrôle de flux dynamique (si bool - ps, break - pset break_comp - ps). La profondeur de l’imbrication varie de 0 à 24.
Nombre de registres temporaires
Le nombre de registres temporaires pris en charge est 32.
Profondeur d’imbrication du contrôle de flux statique
L’appel - ps/callnz /call_pred peut être imbriqué à une profondeur maximale de 4. Indépendamment, boucle - ps/rep - ps instructions peuvent être imbriquées à une profondeur maximale de 4.
Arbitraire Swizzle
Un swizzle arbitraire est pris en charge. Consultez Registre source swizzling.
Instructions de dégradé
Les instructions de dégradé sont prises en charge. Voir dsx - ps, dsy - pset texldd - ps.
Prédication
La prédication des instructions est prise en charge. Consultez registre de prédicats.
Limite de lecture dépendante
Il n’existe aucune limite de lecture dépendante.
Limite des instructions de texture
Il n’existe aucune limite sur les instructions de texture.
Nombre d’instructions
Chaque nuanceur de pixels est autorisé n’importe où entre 512 et le nombre d’emplacements dans MaxPixelShader30InstructionSlots (pas plus de 32768). Le nombre d’instructions exécutées peut être beaucoup plus élevé en raison de la prise en charge du bouclage. MaxPShaderInstructionsExecuted doit avoir au moins 2^16.
Nombre d’échantillonneurs
Le nombre d’échantillonneurs de texture disponibles est de 16.
Caps d’appareil
Si ps_3_0 est pris en charge, les limites suivantes sont prises en charge dans le matériel (au minimum) :
| Casquette | Valeur |
|---|---|
| MaxTextureWidth, MaxTextureHeight | 4K chacun |
| MaxTextureRepeat | 8K |
| MaxAnisotropy | 16 |
| PixelShaderVersion | 3_0 |
| MaxPixelShader30InstructionSlots | 512 |
| Les majuscules primitives suivantes sont définies : | D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ |
| Les majuscules de raster suivantes sont définies : | D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST dans D3DCAPS9 |
| Prise en charge complète du biais de profondeur, notamment : | D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS |
| Ensemble complet de comparaisons pour le test de profondeur et alpha, notamment : | Toutes les D3DPCMPCAPS dans D3DCAPS9. |
| Modes de fusion de sources | Tous les modes de fusion sont pris en charge en tant que source (sauf D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA et D3DPBLENDCAPS_BOTHINVSRCALPHA). |
| Les majuscules de texture suivantes sont prises en charge : | D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP |
| Les éléments suivants sont pris en charge sur les majuscules de filtre de texture, les majuscules de filtre de texture de volume et les majuscules de filtre de texture de cube : | D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (Cela n’est pas obligatoire pour VolumeTextureFilterCaps et CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR |
| Les modes d’adresse de texture suivants sont pris en charge aux étapes de vertex et de pixels : | D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE |
| Toutes les majuscules du nuanceur de pixels sont prises en charge. | DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Les fonctionnalités suivantes sont prises en charge : prédication, swizzles arbitraires et instructions de dégradé. Il n’existe aucune limite de lecture dépendante et aucune limite sur le mélange de textures et d’instructions mathématiques. |
| Toutes les opérations de gabarit sont prises en charge. Cela inclut deux gabarits latéral. | Voir D3DSTENCILOP |
| Taille du point de prise en charge de l’appareil par vertex | D3DFVFCAPS_PSIZE dans D3DCAPS9 |
| Prise en charge de la texture sans puissance de 2. | Prise en charge complète ou prise en charge conditionnelle non-pow-2 ; l’appareil ne doit pas avoir la limite de texture carrée uniquement comme dans D3DPTEXTURECAPS_SQUAREONLY. |
| Si l’appareil prend en charge plusieurs rendertargets, les limites suivantes sont prises en charge : | D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
| Si vs_3_0 est pris en charge | MaxUserClipPlanes dans D3DCAPS9 est 6 |
Rubriques connexes