ps_3_0

Ein programmierbarer Pixelshader besteht aus einer Reihe von Anweisungen, die mit Pixeldaten arbeiten. Registriert Datenübertragungen in und aus der ALU. Ein zusätzliches Steuerelement kann angewendet werden, um die Anweisung, die Ergebnisse oder die ausgeschriebenen Daten zu ändern.

Neue Funktionen

Fügen Sie ein Gesichtsregister hinzu. Fügen Sie ein Positionsregister hinzu. Farbregister (v#) sind jetzt vollständig gleitkomma, und die Texturkoordinatenregister (t#) wurden konsolidiert. Eingabedeklarationen verwenden die Verwendungsnamen, und für Komponenten eines bestimmten Registers sind mehrere Verwendungen zulässig.

Dynamische Flusssteuerung

Das Gerät unterstützt die dynamische Flusssteuerung (wenn bool - ps, break - ps und break_comp - ps). Die Schachtelungstiefe reicht von 0 bis 24.

Anzahl temporärer Register

Die Anzahl der unterstützten temporären Register beträgt 32.

Statische Flusssteuerung Schachtelungstiefe

Der Aufruf - ps/callnz /call_pred kann auf eine maximale Tiefe von 4 geschachtelt werden. Unabhängig davon können Schleifen -ps/rep - ps-Anweisungen auf eine maximale Tiefe von 4 geschachtelt werden.

Beliebiger Swizzle

Beliebiger Swizzle wird unterstützt. Weitere Informationen finden Sie unter Source Register Swizzling.

Farbverlaufsanweisungen

Farbverlaufsanweisungen werden unterstützt. Siehe dsx - ps, dsy - ps und texldd - ps.

Prädikation

Die Prädication von Anweisungen wird unterstützt. Siehe Prädikatregister.

Abhängiger Lesegrenzwert

Es gibt keine abhängigen Lesebeschränkungen.

Texturanweisungslimit

Es gibt keine Beschränkung für Texturanweisungen.

Anweisungsanzahl

Jeder Pixelshader ist von 512 bis zur Anzahl der Slots in MaxPixelShader30InstructionSlots (nicht mehr als 32768) zulässig. Die Anzahl der Ausgeführten Anweisungen kann aufgrund der Schleifenunterstützung viel höher sein. MaxPShaderInstructionsExecuted sollte mindestens 2^16 sein.

Sampleranzahl

Die Anzahl der verfügbaren Textur-Sampler beträgt 16.

Geräte-FESTSTELLTASTE

Wenn ps_3_0 unterstützt wird, werden die folgenden Obergrenzen in der Hardware (mindestens) unterstützt:

Cap Wert
MaxTextureWidth, MaxTextureHeight jeweils 4.000
MaxTextureRepeat 8 KB
MaxAnisotropie 16
PixelShaderVersion 3_0
MaxPixelShader30InstructionSlots 512
Die folgenden Grundkappen sind festgelegt: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ
Die folgenden Rasterkappen werden festgelegt: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST in D3DCAPS9
Vollständige Unterstützung für Tiefenverzerrungen, einschließlich: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Vollständiger Satz von Vergleichen für Tiefen- und Alphatests, einschließlich: Alle D3DPCMPCAPS in D3DCAPS9.
Quellmischungsmodi Alle Mischmodi werden als Quelle unterstützt (außer D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA und D3DPBLENDCAPS_BOTHINVSRCALPHA).
Die folgenden Texturkappen werden unterstützt: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP
Folgendes wird für Texturfilterkappen, Volumentexturfilterkappen und Würfeltexturfilterkappen unterstützt: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (Dies ist für VolumeTextureFilterCaps und CubeTextureFilterCaps nicht erforderlich), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT, D3DPTFILTERCAPS_MAGFLINEAR
Die folgenden Texturadressmodi werden in Scheitel- und Pixelphasen unterstützt: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE
Alle Pixelshader-Feststelltaste werden unterstützt. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Die folgenden Features werden unterstützt: Prädication, beliebige Swizzles und Farbverlaufsanweisungen. Es gibt keine Beschränkung für abhängige Lesevorgänge und keine Beschränkung für die Mischung aus Textur und mathematischen Anweisungen.
Alle Schablonenvorgänge werden unterstützt. Dies umfasst zweiseitige Schablone. Siehe D3DSTENCILOP
Größe des Geräteunterstützungspunkts pro Scheitelpunkt D3DFVFCAPS_PSIZE in D3DCAPS9
Nicht-Leistung von 2 Texturunterstützung. Entweder vollständiger Support oder bedingter Nicht-Pow-2-Support; Das Gerät sollte nicht nur die quadratische Textureinschränkung aufweisen, wie in D3DPTEXTURECAPS_SQUAREONLY.
Wenn das Gerät mehrere Rendertargets unterstützt, werden die folgenden Obergrenzen unterstützt: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Wenn vs_3_0 unterstützt wird MaxUserClipPlanes in D3DCAPS9 ist 6

 

Pixelshader