ps_3_0

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

Nouvelles fonctionnalités

Ajoutez un registre de visages. Ajoutez un registre de position. Les registres de couleurs (v#) sont désormais entièrement à virgule flottante 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 - ps et break_comp - ps). La profondeur des plages d’imbrication est comprise entre 0 et 24.

Nombre de registres temporaires

Le nombre de registres temporaires pris en charge est de 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, les instructions boucle - ps/rep - ps peuvent être imbriquées à une profondeur maximale de 4.

Swizzle arbitraire

Le 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 - ps et texldd - ps.

Prédicat

La prédication des instructions est prise en charge. Consultez Registre des 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é à partir de 512 jusqu’au 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 des boucles. MaxPShaderInstructionsExecuted doit être d’au moins 2^16.

Nombre d’échantillonneurs

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

Majuscules d’appareil

Si ps_3_0 est pris en charge, les majuscules suivantes sont prises en charge dans le matériel (au minimum) :

Cap Valeur
MaxTextureWidth, MaxTextureHeight 4K chacun
MaxTextureRepeat 8 Ko
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 raster suivantes sont définies : D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE D3DPRASTERCAPS_SCISSORTEST dans D3DCAPS9
Prise en charge complète des biais de profondeur, notamment : D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Ensemble complet de comparaisons pour les tests de profondeur et alpha, notamment : Tous les D3DPCMPCAPS dans D3DCAPS9.
Modes de fusion source 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 (ce 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 d’instructions de texture et de mathématiques.
Toutes les opérations de gabarit sont prises en charge. Cela inclut le gabarit à deux côtés. Voir D3DSTENCILOP
Taille de point de prise en charge des appareils par sommet D3DFVFCAPS_PSIZE dans D3DCAPS9
Prise en charge de la non-puissance de 2 textures. 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 majuscules 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