PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zur AF-Debatte bei GeForce4


aths
2002-07-01, 17:01:46
Ich habe mal versucht, Fakten zusammenzutragen.

- Wenn auf GeForce3 beide TMUs (nennen wir sie TMU_0 und TMU_1) anisotrop filtern sollen, sinkt die effektive Füllrate auf 50%.

- Soll GeForce4 zwei Texturen anisotrop filtern, sinkt die effektive Füllrate auf 25%. Das gilt zunächst auch für OpenGL.

Daraus lässt sich folgende Vermutung ableiten: Nur noch TMU_0 kann anisotrop filtern. Setzt man die Texture Stages für TMU_1 so, dass nicht anisotrop gefiltert werden soll, ist die Performance verglichen mit GF3 nämlich normal.

Hier kommt wahrscheinlich die "außergewöhnliche Leistung der nVidia Treiber-Ingenieure" ins Spiel: Unter Umständen (Achtung, Vermutung!) wird AF für die 2. Textur prinzipiell abgeschaltet. (Das ergibt natürlich auch bei GeForce3 einen geringeren Einbruch, da weniger Bandbreite benötigt wird.)

Es könnte also sein, dass nVidia cheatet. Um das zu bestätigen oder zu widerlegen müsste man ein Programm haben, welches für beide TMUs die Stages auf anisotrope Filterung setzt und dann die Performance prüfen.

Es könnte allerdings auch sein, dass der mögliche Cheat "halblegal" ist: Wird explizit AF gefordert appliziert er AF, wird AF per Treiber oder Tweak geforct, wird es nur noch für TMU_0 ausgeführt. Welcher von beiden Fällen gilt, ist mir derzeit nicht bekannt. Fakt sind jedenfalls zwei Dinge:

- Der Geschwindigkeitsboost geht zulasten der Grafikqualität, auch wenn sich der Verlust offenbar sehr in Grenzen hält.

- Die Änderung ist direkt auf den GeForce4-Bug zugeschnitten. Womit die Frage aufgeworfen wird ob es sich nicht doch um einen Hardware-Fehler handelt.

In jedem Fall bleibt nVidias Vorgehen verwirrend. Ebenso, warum die Mulitexturing-AF-Performance bei der GeForce4 in Relation zum Takt deutlich geringer ist als bei GeForce3.

zeckensack
2002-07-01, 18:14:32
Vorschlag zur Klärung:

Man braucht ein Programm, das
1)Zwei Texturen erzeugt, bei denen Aniso deutlich sichtbar ist (möglichst hoher Kontrast)
2)Diese zwei Texturen sowohl getrennt (Single-Texturing), als auch zusammen (Multi-Texturing) darstellt, und zwar auf einer Fläche, die ausreichend geneigt ist, um die Aniso-Filterung sichtbar zu machen. Ich schlage additives Multi-Texturing vor.
3)Zum optischen Vergleich sollte auch trilineare Filterung wählbar sein.

Ich könnte das wohl für OpenGL zusammenschustern, wenn's denn sein muß :)


Äääh, edit:
Wenn in der Überlagerung eine der beiden Texturen 'unscharf' wird, sie aber für sich alleine 'scharf' bleibt, dann wäre damit eine Treiber-Schummel-Optimierung(TM) nachgewiesen.

Quasar
2002-07-01, 18:27:31
Klingt ziemlich genau nach dem Posting von Alexej "Unwinder" im nVnews.net Forum und den Antworten, die er darauf erhielt.

Aber nett übersetzt. *g*

aths
2002-07-01, 19:09:53
Originally posted by Quasar
Klingt ziemlich genau nach dem Posting von Alexej "Unwinder" im nVnews.net Forum und den Antworten, die er darauf erhielt.Könnte daran liegen, dass ich vor dem Posting mit Unwinder gechattet habe. Hättest du ansonsten was zum Thema beizutragen?
Originally posted by zeckensack
Vorschlag zur Klärung:
Ich könnte das wohl für OpenGL zusammenschustern, wenn's denn sein muß :)Das wäre sehr nett :)

Demirug
2002-07-01, 19:49:17
Wenn Interesse besteht und endlich meine Ersatzhardware wiedergefunden:bawling:*grrr* ist könnte ich einen D3D Test zusammenhauen.

zeckensack
2002-07-01, 20:36:38
Originally posted by aths
Das wäre sehr nett :) Mußt dich bis morgen früh gedulden (oder später heute nacht), das soziale Umfeld ruft ;)

Bin aber schon fleißig gewesen.

Quasar
2002-07-01, 21:32:11
Originally posted by aths
Könnte daran liegen, dass ich vor dem Posting mit Unwinder gechattet habe. Hättest du ansonsten was zum Thema beizutragen?

Hatte mich nur etwas gewundert, weil du in dem anderen Thread nicht besonders "gläubig" wirktest, aber nachdem du ja jetzt mit Alexej gesprochen hast, scheint sich's ja geändert zu haben.

Und nein, zum Thema habe ich ´mich schon im anderen Thread geäußert und programmieren kann ich nicht.

zeckensack
2002-07-02, 02:08:33
Hier (http://home.t-online.de/~zsack/AnisoTest.zip).

Zwei Texturen, die zusammen ein rein weißes Bild ergeben sollen.
Bei identischem Filter tun sie das auch.
Mittels der Knöppe '1' und '2' kann man den Aniso-Filter für die beiden Texturen getrennt ein- und ausschalten.

Ist irgendwie nicht ganz so glücklich gewählt, aber es reicht immerhin, um einen Unterschied zwischen Trilinear+Trilinear und Aniso+Trilinear zu sehen.

Weil's im Readme nicht drinsteht (vergessen ?-) ) und auch nicht angezeigt wird:
Beim Start ist für beide Texturen nur der trilineare Filter aktiv. Da sieht man dann auch gleich, wie es bei korrekter Arbeit des Treibers aussehen muß (untere Hälfte).
Also flugs '1' und '2' gedrückt (jeweils einmal bitte ;) ), dann wird beides anisotrop gefiltert. Sollte jetzt in der unteren Bildhälfte irgendetwas nicht weiß sein, dann ist die verwendete Graka-/Treiberkombination ein zwielichtiges Duo ...

Benötigte Extensions:
GL_ARB_multitexture (duh)
GL_EXT_texture_filter_anisotropic (duh again!)
GL_ARB_texture_env_add

edit:
Mit den Pfeiltasten oben/unten kann der Grad der Anisotropie zwischen 2fach und 16fach eingestellt werden. Bonusspielerei ;)
Im Readme steht noch 8fach, ist mir jetzt zu doof, das nochmal zu ändern und neu hochzuladen.

Spam-PS: Mein erstes Projekt mit DevCC =)
Bin schon sehr gespannt auf die Version 5.0 final. Eat crap, M$!! :P

Richthofen
2002-07-02, 02:42:34
hm habs mal eben probiert.

Also die untere Pyramide bzw das untere Dreieck ist bei mir weiss wenn ich starte und auch weiss wenn ich rumfummel.

Ich hab Proggi gestartet jeweils Taste 1 und 2 einmal gedrückt und dann mit den Pfeiltasten den Aniso Grad hin und hergeswitched.
Irgendwie verändert sich bei mir ausser dem Aniso in der Entfernung im oberen Bildteil nix.

@aths
wieso ist eigentlich die BQ schlechter? Hast du bei dir schonmal nachgeguggt zwischen alten und neuen Treibern?
Also mir ist da nichts aufgefallen und mich wundert das schon denn der betagte Reverend von Beyond3D hat ebenfalls nüscht gesehen auf seinen Screens und der hat doch den Aniso Vergleich mit aktuellem und altem Treiber gemacht.

Quasar
2002-07-02, 06:56:29
Bei mir dasselbe: Bei tri+tri weiß, bei af+tri (oder andersrum) oben ein wenig streifig, bei af+af reinweiß.

Thx, Z-Bag :-))

ow
2002-07-02, 09:10:33
@aths:

Die Worte "Bug" und "Cheat" scheinen dir bei NV immer recht leicht von der Hand zu gehen.

Frage: Ist jedes Unvermoegen (=technische Limitierung) einer HW/SW gleich ein Bug oder ein Cheat?

Was ist denn mit dem AF der Radeon? Bug oder Cheat?

aths
2002-07-02, 13:12:06
ow: http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=25019

aths
2002-07-02, 13:27:06
zecke: Das Programm löpt und zeigt auch bei mir, dass der Treiber offenbar das tut, was er tun soll.

Jetzt bliebe noch die andere Variante: AF wird ausschließlich per Treiber geforct. (Dein Proggi scheint zu tun was du programmiert hast und nicht was ich im Treiber eingestellt habe.)

Richthofen: Alex Unwinder meint, BQ-Unterschiede festgestellt zu haben. Die sind in jedem Fall kaum auffällig, und man könnte ja im Notfall per RT die alte Option wieder einstellen.

zeckensack
2002-07-02, 13:32:01
Originally posted by Richthofen
hm habs mal eben probiert.

Also die untere Pyramide bzw das untere Dreieck ist bei mir weiss wenn ich starte und auch weiss wenn ich rumfummel.

Ich hab Proggi gestartet jeweils Taste 1 und 2 einmal gedrückt und dann mit den Pfeiltasten den Aniso Grad hin und hergeswitched.
Irgendwie verändert sich bei mir ausser dem Aniso in der Entfernung im oberen Bildteil nix.Dann macht deine Grafikkarte das richtige ... es sei denn, sie filtert bei Multitexturing grundsätzlich alles trilinear, das würde dann aber in Spielen sofort auffallen. Also deine Graka = brav. Wie geschummeltes Aniso+Trilinear aussehen würde, kannst du dir anschauen, wenn du nur eine der Texturen auf aniso umschaltest.

Ist ziemlich halbfertig, das Programm, aber für einen sichtbaren Unterschied reicht's IMO.

Hmm, vielleicht noch auf Quadtexturing aufbohren ???

zeckensack
2002-07-02, 13:41:29
Originally posted by aths
Jetzt bliebe noch die andere Variante: AF wird ausschließlich per Treiber geforct. (Dein Proggi scheint zu tun was du programmiert hast und nicht was ich im Treiber eingestellt habe.)Auch dann nicht, wenn du das Programm einfach nur startest, ohne auf Knöppe zu drücken?

Ich frage deshalb, weil das Programm (aus Bequemlichkeit) beim Start den Aniso-Grad erstmal für beide Texturen auf 1,0 setzt.

Laut der aniso-Extension sollte das überhaupt nichts bewirken, also weiterhin der trilineare Filter angewandt werden ???
http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_filter_anisotropic.txt

HOT
2002-07-02, 13:44:45
Die erste Textur kann ich umschalten, die 2. aber nicht. Streifen hab ich in jedem Fall.
Liegt das am bilinearen aniso der radeon?

zeckensack
2002-07-02, 14:05:55
Originally posted by HOT
Die erste Textur kann ich umschalten, die 2. aber nicht. Streifen hab ich in jedem Fall.
Liegt das am bilinearen aniso der radeon? Bei mir geht's ???
Hast du im OpenGL-Panel Aniso erzwungen?

Selbst dann kommt's mir komisch vor, weil es dann ja für beide Texturen gleich sein sollte ... Treiberbug? ?-)

Jedenfalls verträgt sich dieser 'Test' mit der komischen Aniso-Implementierung der Radeon.

zeckensack
2002-07-02, 14:07:55
@aths:

Originally posted by zeckensack
Auch dann nicht, wenn du das Programm einfach nur startest, ohne auf Knöppe zu drücken?

Ich frage deshalb, weil das Programm (aus Bequemlichkeit) beim Start den Aniso-Grad erstmal für beide Texturen auf 1,0 setzt.
Jetzt nicht mehr. Die neue Version setzt den Aniso-Grad erst dann, wenn mindestens einmal umgeschaltet wurde. Blöderweise dann wieder für beide Texturen, auch wenn nur bei einer Aniso aktiv ist.

Jedenfalls sollet man auf diese Weise sofort beim Start die Einstellungen haben, die mittels Registry erzwungen wurden.

ow
2002-07-02, 19:17:28
Auf meiner Kyro zeigt das Umschalten keinerlei Wirkung.

Hab´s leider verpeilt Screenshot zu erstellen vor dem Umbau auf meine Gf2MX, weiss also nicht was der Kyro da tut (trilinear oder aniso). Auf der MX geht´s einwandfrei (Det. 29.42, W98).