Volle Filterung für ATi und nVidia!

Update Carsten Spille
41 Kommentare

Ein heute neu aufgetauchter, inoffizieller ForceWare-Treiber für Windows 2000 und XP mit der Versionsnummer 61.32, den die Kollegen von Station-Drivers.com aufgetrieben haben, scheint endlich dem langerwarteten, neuen ForceWare nahezukommen.

Dieser Treiber beinhaltet wieder den zwischenzeitlich „einem Defekt erlegenen“ Schalter, der es erlaubt, die volle trilineare Filterung zu erzwingen, die - ersten Betrachtungen zufolge - auch über alle Texturstufen und mit allen Leveln anisotroper Filterung zu funktionieren scheint.

Im Gegensatz zum ersten Treiber für die GeForce 6800 Ultra-Reviews funktioniert dieser Schalter nun auch endlich für die Karten der GeForce FX-Serie, deren Besitzern lange Zeit aus dem sinnlosen Grund der Benchmarkbalkenlänge dieses grundlegende Feature vorenthalten wurde.

Der Link zum Download vom lokalen ComputerBase-Server für registrierte Nutzer findet sich – wie immer – am Ende der News.

Update

Wie es aussieht, waren wir etwas zu voreilig. Volles, trilineares AF gibt es nur über alle Texturstages, wenn die Applikation es anfordert oder mit einem externen Tool nachgeholfen wird. Das über den Treiber erzwungene AF filtert nur auf der ersten Texturstage trilinear-AF, darüber wird nur noch bilineares AF geboten - analog dem, was im ATi-Treiber geboten wird, wenn man auf externe Tools verzichtet.

ATi
Passend zu diesem Anlass wollen wir auch gleich noch eine mehr oder weniger freudige Nachricht für Besitzer von ATi-Karten der Reihe 9600 und X800 bekanntgeben. Am Wochenende ist es uns gelungen, einige Registry-Einträge für den Beta-Catalyst, mit dem die X800 XT getestet wird, herauszufinden, mit denen man die Optimierungen dieser beiden Kartenserien soweit abschalten kann, um wieder die Filterung zu bekommen, die man bereits von der Radeon 9700/9800-Serie kennt. Ob und wie stark sich das auf die Bildqualität auswirkt, wollen wir mit Absicht nicht kommentieren, da hier auf in-Game-Screenshots kaum beweiskräftige Aussagen zu treffen sind und das individuelle Empfinden auch eine Rolle spielt.

Es gibt drei uns bekannte Einträge im aktuell genutzten Pfad der Grafikkarte in der Registry, den man mit der Suche (STRG+F) nach „AntiAliasSamples“ im Registry-Editor (Start, Ausführung, „regedit“) bestimmen kann. Dieser Wert der „AntiAliasSamples“ sollte dem Wert, der aktuell im Treiber eingestellt ist, entsprechen. Sicher gehen kann man, indem man bei geöffnetem Registry-Editor den Wert im Treiber verstellt und dann im Regedit eine Aktualisierung per F5-Taste erzwingt. Der Wert sollte sich nun auf den zuvor im Treiber eingestellten Wert ändern. Ist dies der Fall, so ist der aktuelle Pfad des Catalyst gefunden.

Sobald man den korrekten Pfad erkannt hat, legt man hier zwei (respektive drei für X800-Karten) neue Werte an. Diese müssen vom Typ „Zeichenfolge“ sein und folgendermaßen aufgebaut sein.

"RV350TRPER" 1

"RV350ANTHRESH" 1

"R420AnisoLOD" 2

Den beiden ersten, die trotz ihres Namens für alle betroffenen Karten (also auch die auf dem R420-Chip basierenden) relevant sind, bekommen einen Wert von „1“ zugewiesen. R420AnisoLOD muss den Wert „2“ bekommen. Durch einen Doppelklick auf den jeweiligen Eintrag kann man ein Fenster erreichen, wo dieser Wert eingegeben wird.

Füllrateneinsparung bei 4xAF durch optimierte Texturfilter
Füllrateneinsparung bei 4xAF durch optimierte Texturfilter
(Erläuterung im Klapptext)

Hier also eine eher theoretische Betrachtung, was die einzelnen Optimierungen genau auslösen. „RV350TRPER“ (Magenta) ist einzig und allein für die Reduzierung der trilinearen Filterung zuständig und ändert nichts an der Veränderung des AF-LOD oder der verwendeten Sample-Anzahl in der Basistextur.

„RV350ANTHRESH“ (Gelb) wirkt nur innerhalb der Basistextur und bestimmt die Schwelle, ab der bei anisotroper Filterung eine höhere Anzahl an Samples genutzt wird - zu sehen in den Kästen eins und zwei. Hier liegen die einzigen Bereiche, in denen „RV350ANTHRESH“ Füllratenvorteile bringt.

„R420AnisoLOD“ wirkt hingegen dadurch, daß der LOD-Wert zur Bestimmung der nötigen Anzahl an Textursamples oberhalb der Mip-Stufe 1 abgesenkt wird, wodurch man, analog zum „RV350ATHRESH“, im dichter zum Betrachter gelegenen Bereich mit weniger Samples pro Pixel auskommt (s. Kasten drei).

Weiter in die Tiefe hinein, wo weit weniger Pixel davon betroffen sind und ergo der Gesamtverlust an Leistung deutlich geringer ausfällt, verliert man hingegen auch ein wenig Füllrate (Kasten vier). Das Bild wirkt dort auf Standbildern aber schärfer. Pikanter Weise werden genau diese hinteren Bildbereiche jedoch gern bei Screenshot-AF Vergleich benutzt, um die Qualität der Filterung zu beurteilen, wobei die erhöhte Flimmerneigung nur auf hochauflösenden Videos zu sehen wäre.


Natürlich haben wir auch ein paar kurze Performance-Messungen durchgeführt, die allerdings in einem unrealistisch füllratenlimitierten Szenario stattfanden. Hier ist also so etwas wie der „worst case“ beschrieben; im realen Spielealltag bewegen sich bei der „X800 XT PE“ die Verluste eher im Bereich von 5-14%, da hier üblicherweise nicht die Füllrate allein limitiert und außerdem sinnvoller Weise noch FSAA hinzugeschaltet wird, sodaß die zur Verfügung stehende Speicherbandbreite hier ebenfalls ein großer Faktor ist.

UT2003 FlyBy Antalus
  • 1600x1200x32, 16xAF:
    • X800 XT PE Bilinear-AF
      182,62
    • X800 XT PE driver default
      173,95
    • X800 XT PE Application-AF
      156,52
    • X800 XT PE Full-Tri-AF
      131,23
  • 800x600x32, 16xAF:
    • R9600 XT Bilinear-AF
      153,33
    • R9600 XT driver default
      132,26
    • R9600 XT Application-AF
      115,78
    • R9600 XT Full-Tri-AF
      93,51
Einheit: Bilder pro Sekunde (FPS)

Der grüne Balken repräsentiert die bestmögliche Qualität, die die ATis Chips (à la R300/R350/R360) liefern können . Der rote Balken ist das, was man erhält, wenn man sich lediglich auf die Treibereinstellungen verläßt.

UT2003 Pyramid-Demo
  • 1600x1200x32, 4xAA, 16xAF:
    • X800 XT PE driver default
      67,13
    • X800 XT PE Bilinear-AF
      67,05
    • X800 XT PE Application-AF
      60,07
    • X800 XT PE Full-Tri-AF
      52,61
  • 800x600x32, 4xAA, 16xAF:
    • R9600 XT Bilinear-AF
      53,76
    • R9600 XT driver default
      46,96
    • R9600 XT Application-AF
      44,84
    • R9600 XT Full-Tri-AF
      39,94
Einheit: Bilder pro Sekunde (FPS)

Hier, in einem realen Spiel mit aufgezeichneter Timedemo, wirkt die Optimierung bereits deutlich weniger. Je nachdem, wie nahe man am CPU-Limit operiert, kann es auch durchaus sein, daß man durch die Optimierungen gar keinen Frameraten-Gewinn erzielt und so wie es bisher aussieht, wird sich an der prinzipiell höheren Geschwindigkeit der „X800 XT PE“ gegenüber der GeForce 6800 Ultra nicht viel ändern - lediglich die Abstände schrumpfen zusammen.

Zu beachten wäre noch, daß die Optimierungen offenbar unter OpenGL weniger stark ausgeprägt sind. Momentan gehen unsere Vermutungen dahin, daß hier nur der trilineare Filter optimiert wird und keine Anpassungen am AF-LOD vorgenommen werden. Dieses Resultat ist allerdings noch nicht endgültig.