PS _ 3 _ 0

Un nuanceur de pixels programmable est constitué d’un ensemble d’instructions qui fonctionnent sur des données de pixels. Enregistre les données de transfert dans et en dehors de l’ALU. Un contrôle supplémentaire peut être appliqué pour modifier l’instruction, les résultats ou les données qui sont écrites.

Nouvelles fonctionnalités

Ajoutez un registre facial. Ajoutez un registre de position. Les registres de couleurs (v # ) sont désormais à virgule flottante intégrale 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 Flow dynamique

L’appareil prend en charge le contrôle de Flow dynamique (si bool-PS, break-PSet break _ COMP-PS). Profondeur d’imbrication de plages comprise entre 0 et 24.

Nombre de registres temporaires

Le nombre de registres temporaires pris en charge est de 32.

profondeur d’imbrication des contrôles de Flow statique

L’appel de PS / callnzprévu / peut être imbriqué sur une profondeur maximale de 4. _ Indépendamment, les instructions Loop-PS / REP-PS peuvent être imbriquées à une profondeur maximale de 4.

Swizzle arbitraire

Swizzle arbitraire est pris en charge. Consultez Registre source Swizzling.

Instructions de dégradé

Les instructions de dégradé sont prises en charge. Consultez DSX-PS, DSY-PSet texldd-PS.

Prédicat

Le prédicat d’instruction est pris en charge. Consultez Registre de prédicat.

Limite de lecture dépendante

Il n’existe aucune limite de lecture dépendante.

Limite de l’instruction de texture

Il n’existe aucune limite sur les instructions de texture.

Nombre d’instructions

Chaque nuanceur de pixels est autorisé à partir de 512 jusqu’au nombre d’emplacements dans MaxPixelShader30InstructionSlots (pas plus de 32768). Le nombre d’instructions exécutées peut être bien plus élevé en raison de la prise en charge des boucles. MaxPShaderInstructionsExecuted doit être au moins égale à 2 ^ 16.

Nombre d’échantillonneurs

Le nombre d’échantillonneurs de texture disponibles est 16.

Cap de l’appareil

Si PS _ 3 _ 0 est pris en charge, les limites suivantes sont prises en charge dans le matériel (au minimum) :

Encapsul Valeur
MaxTextureWidth, MaxTextureHeight 4 Ko chacun
MaxTextureRepeat 8 Ko
MaxAnisotropy 16
PixelShaderVersion 3 _ 0
MaxPixelShader30InstructionSlots 512
Les limites primitives suivantes sont définies : D3DPMISCCAPS _ BLENDOP, D3DPMISCCAPS _ CLIPPLANESCALEDPOINTS, D3DPMISCCAPS _ CLIPTLVERTS, D3DPMISCCAPS _ CULLCCW, D3DPMISCCAPS _ CULLCW, D3DPMISCCAPS _ CULLNONE, D3DPMISCCAPS _ FOGINFVF, D3DPMISCCAPS _ MASKZ
Les extrémités raster suivantes sont définies : D3DPRASTERCAPS _ MIPMAPLODBIAS, D3DPRASTERCAPS _ anisotrope, D3DPRASTERCAPS _ COLORPERSPECTIVE, D3DPRASTERCAPS _ SCISSORTEST dans D3DCAPS9
Prise en charge complète de l’écart de profondeur, notamment : D3DPRASTERCAPS _ SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS _ DEPTHBIAS
Ensemble complet de comparaisons pour le test de profondeur et alpha, y compris : Toutes les D3DPCMPCAPS dans D3DCAPS9.
Modes de fusion source Tous les modes de fusion sont pris en charge en tant que source (à l’exception de D3DPBLENDCAPS _ SRCALPHASAT, D3DPBLENDCAPS _ BOTHSRCALPHA et D3DPBLENDCAPS _ BOTHINVSRCALPHA).
Les limites de texture suivantes sont prises en charge : D3DPTEXTURECAPS _ carte cubique, D3DPTEXTURECAPS _ MIPCUBEMAP, D3DPTEXTURECAPS _ MIPMAP, D3DPTEXTURECAPS _ MIPVOLUMEMAP, D3DPTEXTURECAPS _ perspective, D3DPTEXTURECAPS _ projeté, D3DPTEXTURECAPS _ TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS _ VOLUMEMAP
Les éléments suivants sont pris en charge sur les limites de filtre de texture, les seuils de filtre de texture de volume et les filtres 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 au niveau des niveaux vertex et pixel : D3DPTADDRESSCAPS _ Wrap, D3DPTADDRESSCAPS _ Mirror, D3DPTADDRESSCAPS _ collier, D3DPTADDRESSCAPS _ Border, D3DPTADDRESSCAPS _ INDEPENDENTUV, D3DPTADDRESSCAPS _ MIRRORONCE
Toutes les limites de nuanceur de pixels sont prises en charge. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Les fonctionnalités suivantes sont prises en charge : prédicat, Swizzles arbitraire et instructions de dégradé. Il n’existe aucune limite de lecture dépendante et aucune limite sur le mélange des instructions de texture et mathématiques.
Toutes les opérations de stencil sont prises en charge. Cela comprend deux stencils côte à côte. Voir D3DSTENCILOP
Taille du point de prise en charge de périphérique par vertex D3DFVFCAPS _ psize dans D3DCAPS9
Prise en charge de la texture non-puissance de 2. Prise en charge complète ou prise en charge conditionnelle non-Pow-2 ; l’appareil ne doit pas avoir la seule limite de texture carrée que dans D3DPTEXTURECAPS _ SQUAREONLY.
Si l’appareil prend en charge plusieurs rendertargets, les limitations suivantes sont prises en charge : D3DPMISCCAPS _ INDEPENDENTWRITEMASKS, D3DPMISCCAPS _ MRTPOSTPIXELSHADERBLENDING
Si vs _ 3 _ 0 est pris en charge MaxUserClipPlanes dans D3DCAPS9 est 6

Nuanceurs de pixels