PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu einigen FF-Combinern


aths
2004-01-31, 22:58:34
- Nutzen Voodoos schon (A+B)*C+D, oder noch A*B+C?

- Trennte Voodoo schon zwischen RGB und A?

- Verfügte NV4 (TNT) schon über (A*B)+(C*D)?

- Was heißt "Mux" (die Operation, was tut die genau?)

- "Wieviele" RC hatte die NV10-Pipe? 2 + 1 final? Oder nur 2 ingesamt?

- Kann man in der ersten arithmetischen Stage schon 2 Textur-Samples nutzen?

Demirug
2004-02-01, 00:27:12
Was die Voodoos angeht weiss Zecki bestimmt genauer bescheid als ich.

Die TNTs haben schon A*B+C*D. Allerdings liefern sie nur ein Ergebniss pro Combiner.

MUX macht nichts anderes als abhängig vom Alpha-Wert einen aus 2 Werten auszuwählen.Das ganze entspricht der cnd PS-Operation in DX.

NV10 hat AFAIK 2 Register Combiner + 2 Final Combiner (jeweils 2xSIMD).

Ja der erste Combinerstage kann schon zwei texturen nutzten. Unter DX wird das allerdings erst mit den Pixelshadern unterstützt. Die DX7 Schnittstelle erlaubt nur eine Textur pro Stage.

ScottManDeath
2004-02-01, 17:22:07
NV10

2 General Combiner + 1 Final Combiner (u.a. für Fog) pro Pipe

TNT2

auch sie kann im ersten (von 2) Stages zwei Texturen verarbeiten

Xmas
2004-02-01, 19:56:41
Voodoo1 berechnet grob gesagt im RGB-Teil (A-B)*C+D, bzw. mit den Bezeichnern aus der Glide-Doku: f * (Cother - Clocal) + (Clocal | Alocal)

Dabei sind folgende Werte erlaubt:
A: 0, Iterated RGB, Texture RGB, Color1 RGB, [Framebuffer RGB]
B: 0, Color0 RGB, Iterated RGB
C: 0, B, Texture Alpha, Local Alpha, Other Alpha, sowie die genannten Werte invertiert, also 1-x
D: 0, Local RGB, Local Alpha

Local entspricht hier der Auswahl bei B, Other der Auswahl bei A.

Und das Ergebnis kann am Ende noch invertiert werden. Im Alpha Combiner können nur die Alpha-Werte als Eingangswerte verwendet werden.

Xmas
2004-02-01, 20:27:14
Vom logischen Aufbau sieht es bei den NVidia-Chips so aus:

TNT1/2:
Zwei Combiner mit erlaubten Operationen:
(A*B+C*D - bias) * scale

bias kann 0 oder 0.5 sein.
scale kann 1, 2 oder 4 sein, 4 jedoch nur wenn bias 0 ist.


Geforce1/2:
Zwei General Combiner mit erlaubten Operationen:
(A*B - bias) * scale, (C*D - bias) * scale, (A*B+C*D - bias) * scale
(A*B - bias) * scale, (C*D - bias) * scale, (mux(A*B, C*D) - bias) * scale
(A dot B - bias) * scale, (C*D - bias) * scale
(A*B - bias) * scale, (C dot D - bias) * scale
(A dot B - bias) * scale, (C dot D - bias) * scale

bias kann 0 oder 0.5 sein.
scale kann 0.5, 1, 2 oder 4 sein, 0.5 oder 4 jedoch nur wenn bias 0 ist.

Ein Final Combiner mit erlaubten Operationen:
A*B + (1-A)*C + D

hierbei kann für A, B, C oder D auch (E*F) eingesetzt werden, so dass noch eine zusätzliche Multiplikation an beliebiger Stelle möglich ist.

GeForce3/4:
8 General Combiner
1 Final Combiner

Was den tatsächlichen Aufbau angeht, so ist es durchaus Möglich dass GeForce1 nur 4 GC und 2 FC insgesamt hat. Durch Pipeline Combining bekäme man dann zwei Multitexturing-Pipelines mit jeweils 2 GC und 1 FC.

zeckensack
2004-02-01, 23:33:44
XMas hat ja schon alles geschrieben =)

Original geschrieben von Xmas
Was den tatsächlichen Aufbau angeht, so ist es durchaus Möglich dass GeForce1 nur 4 GC und 2 FC insgesamt hat. Durch Pipeline Combining bekäme man dann zwei Multitexturing-Pipelines mit jeweils 2 GC und 1 FC. Meinst du? ?(
Dann wäre bereits bei Minimaleinsatz von RCs die Füllrate glatt halbiert. Denn den Final Combiner kann man nicht abschalten.
Die NV-Doku schreibt allerdings nur das:
"There will be a performance impact when two combiner stages are
enabled versus just one stage. Should we mention that somewhere?

RESOLUTION: NO. (But it is worth mentioning in this issues
section.)"

Ich hab's nicht gemessen, nur stellt sich mir die Frage: wenn NV10 schon RCs (und FCs) hat, warum sollte man dann noch zusätzliche Hardware für 'normale' Textur-Combiner und fixed function fog etc einbauen?

Demirug
2004-02-01, 23:46:21
Ich kann es leider nicht nachmessen (meine GF1 ist gerade verliehen). Aber wenn mich nicht alles täuscht gibt es pro TMU einen RC. Braucht man also in einem Durchlauf 2 RCs oder 2 Texturen arbeitet der Chip als 2*2. Braucht man nur eine Textur und auch nur einen RC arbeitet er als 4*1. Es gibt auch eine Patentschrift in der das ganze beschrieben ist.

Xmas
2004-02-02, 02:20:03
Original geschrieben von zeckensack
Meinst du? ?(
Dann wäre bereits bei Minimaleinsatz von RCs die Füllrate glatt halbiert. Denn den Final Combiner kann man nicht abschalten.
Die NV-Doku schreibt allerdings nur das:
"There will be a performance impact when two combiner stages are
enabled versus just one stage. Should we mention that somewhere?

RESOLUTION: NO. (But it is worth mentioning in this issues
section.)"
Ist nur eine Vermutung, vielleicht sind es auch 4 und 4. Ab NV15 sollten es dann 8 GC / 4 FC sein.

Ich hab's nicht gemessen, nur stellt sich mir die Frage: wenn NV10 schon RCs (und FCs) hat, warum sollte man dann noch zusätzliche Hardware für 'normale' Textur-Combiner und fixed function fog etc einbauen?
Wieso zusätzliche Hardware? :???:
Mir ist auch aufgefallen, dass 1 GC + 1 FC für alle Dual-Texture-Environments ausreicht. NVidia hat hier also eine ganze Menge Transistoren in Einheiten gesteckt, die nur recht selten überhaupt voll zum Einsatz kamen.