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.
- ps_3_0 instructies bevat een lijst met de beschikbare instructies.
- ps_3_0 Registreert de verschillende typen registers die door de pixel-shader ALU worden gebruikt.
- Modifiers Worden gebruikt om de manier waarop een instructie werkt te wijzigen.
- Doelregister schrijven masker bepaalt welke onderdelen van het doelregister worden geschreven.
- Pixel Shader Source Register Modifiers de bronregistergegevens wijzigen voordat de instructie wordt uitgevoerd.
- Bronregister Swizzling geeft extra controle over welke registeronderdelen worden gelezen, gekopieerd of geschreven.
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 |
Verwante onderwerpen