CineFX (NV30) Inside
31. August 2003 / von Demirug / Seite 3 von 7
Der Shader Core (Forts.)
Sind alle 10 Stufen durchlaufen kann, der nun in 4 Pixel zerlegte Quad an die nächste Einheiten übergeben werden, oder falls der aktuelle Befehl einen weiteren Durchlauf benötigt, wieder an den Anfang des Shader Cores zurück gehen (Interner Shader Core Loopback). In diesem Fall werden die 4 Werte des Ausgangsregister in der Stufe 4 (Erste Wertrangierung) wieder zur Verfügung gestellt. Die beiden Texturkoordinaten verfallen dabei aber. Verlässt der Quad dagegen den Shader Core, werden die 4*2 Texturekoordinaten an die TMUs weitergereicht und das Register in einem FIFO gespeichert, welcher parallel zu den TMUs verläuft.
Die folgende Tabelle enthält Angaben über die Anzahl der Shadercoredurchläufe, die zur Ausführung einzelner PS-Anweisungen gebraucht werden.
Befehl | Zyklen | Bemerkung |
nop | 1 | |
mov | 1 | |
add | 1 | |
mad | 1 | |
mul | 1 | |
rcp | 1 | 1/x |
rsq16 | 1 | 1/Wurzel(x) FP16 |
rsq32 | 2 | 1/Wurzel(x) FP32 |
dp3 | 1 | |
dp4 | 1 | |
min | 1 | |
max | 1 | |
slt | 1 | |
sge | 1 | |
exp | 1 | |
log | 1 | |
frc | 1 | |
lit | 1 | |
dst | 1 | |
lrp | 2 | |
texcoord | 1 | |
texkill | 1 | |
2d texture read | 1 | Diese Funktion kann zweimal in einem Takt ausgeführt werden. |
cube texture read | 1 | Diese Funktion kann zweimal in einem Takt ausgeführt werden. |
3d texture | 1 | |
texbem | 2 | Ab hier Funktionen für Kompatibilität NV25/PS 1.1-1.3. |
texbeml | 3 | |
texbemproj | 2 | |
texreg2ar | 1 | |
texreg2gb | 1 | |
texm3x2pad | 1 | |
texm3x2tex | 2 | |
texm3x2depth | 2 | |
texm3x3pad | 1 | |
texm3x3tex | 2 | |
texm3x3cube | 3 | |
texreg2rgb | 1 | |
texreg2rgbcube | 1 | |
texdp3 | 2 | |
texdp3tex | 2 | |
texdp3depth | 2 | |
texbrdf | 1 | |
texm3x3spec | 7 |
Eine Besonderheit stellen die 2D- und Cubemap-Texturzugriffe dar. Davon können zwei in einem Durchlauf kombiniert werden.