Delen via


ps_3_0

Een programmeerbare pixel-shader bestaat uit een set instructies die op pixelgegevens werken. Registreert overdrachtsgegevens in en uit de ALU. Aanvullende controle kan worden toegepast om de instructie, de resultaten of welke gegevens worden weggeschreven te wijzigen.

Nieuwe functies

Voeg een gezichtsregister toe. Voeg een positieregister toe. Kleurregisters (v#) zijn nu volledig drijvende komma en de patrooncoördinaatregisters (t#) zijn geconsolideerd. Invoerdeclaraties nemen de gebruiksnamen en er zijn meerdere gebruiksrechten toegestaan voor onderdelen van een bepaald register.

Dynamisch stroombeheer

Het apparaat ondersteunt dynamisch stroombeheer (als bool - ps, break - psen break_comp - ps). De diepte van nesten varieert van 0 tot 24.

Aantal tijdelijke registers

Het aantal ondersteunde tijdelijke registers is 32.

Diepte van nesten van statische stroombesturing

De call - ps/callnz /call_pred kan worden genest tot een maximale diepte van 4. Onafhankelijk, lus - ps/rep - ps instructies kunnen worden genest tot een maximale diepte van 4.

Willekeurige swizzle

Willekeurige zwenk wordt ondersteund. Zie Bronregister Swizzling.

Instructies voor kleurovergang

Instructies voor kleurovergang worden ondersteund. Zie dsx - ps, dsy - psen texldd - ps.

Predicatie

Instructiepredicatie wordt ondersteund. Zie Predicaat register.

Afhankelijke leeslimiet

Er zijn geen afhankelijke leeslimieten.

Limiet voor patrooninstructie

Er is geen limiet voor patrooninstructies.

Aantal instructies

Elke pixel-shader is overal van 512 tot het aantal sleuven in Max PixelShader30InstructionSlots toegestaan (niet meer dan 32768). Het aantal instructies dat wordt uitgevoerd, kan veel hoger zijn vanwege de ondersteuning voor lussen. MaxPShaderInstructionsExecuted moet ten minste 2^16 zijn.

Aantal samplers

Het aantal beschikbare texture samplers is 16.

Apparaatlimieten

Als ps_3_0 wordt ondersteund, worden de volgende hoofdletters ondersteund in hardware (minimaal):

Pet Waarde
MaxTextureWidth, MaxTextureHeight 4K elk
MaxTextureRepeat 8K
MaxAnisotropie 16
PixelShaderVersion 3_0
Max PixelShader30InstructionSlots 512
De volgende primitieve caps zijn ingesteld: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ
De volgende rasterlimieten zijn ingesteld: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE D3DPRASTERCAPS_SCISSORTEST in D3DCAPS9
Volledige ondersteuning voor diepte-bias, waaronder: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Volledige reeks vergelijkingen voor diepte- en alfatest, waaronder: Alle D3DPCMPCAPS in D3DCAPS9.
Bronmengingsmodi Alle mengmodi worden ondersteund als bron (behalve D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA en D3DPBLENDCAPS_BOTHINVSRCALPHA).
De volgende patroonlimieten worden ondersteund: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP
De volgende opties worden ondersteund voor patroonfilterdoppen, volumepatroonfilterkapjes en kubuspatroonfilterkapjes: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (dit is niet vereist voor VolumeTextureFilterCaps en CubeTextureFilterCaps), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR
De volgende patroonadresmodi worden ondersteund in hoekpunt- en pixelfasen: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE
Alle pixel-shader-caps worden ondersteund. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. De volgende functies worden ondersteund: predicatie, willekeurige swizzles en kleurovergangsinstructies. Er is geen afhankelijke leeslimiet en geen limiet voor het mengsel van patronen en wiskundige instructies.
Alle stencilbewerkingen worden ondersteund. Dit omvat tweezijdige stencils. Zie D3DSTENCILOP
Grootte van apparaatondersteuningspunten per hoekpunt D3DFVFCAPS_PSIZE in D3DCAPS9
Niet-macht van 2 textuurondersteuning. Volledige ondersteuning of voorwaardelijke niet-pow-2-ondersteuning; het apparaat mag niet alleen de beperking van de vierkante textuur hebben, zoals in D3DPTEXTURECAPS_SQUAREONLY.
Als het apparaat meerdere rendertargets ondersteunt, worden de volgende hoofdletters ondersteund: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Als vs_3_0 wordt ondersteund MaxUserClipPlanes in D3DCAPS9 is 6

 

Pixel Shaders