Zum 3DCenter Forum
Inhalt




ATi & nVidia im "Optimierungs"-Wettstreit

26. Juli 2003 / von Leonidas / Seite 9 von 9


   nVidia-Optimierungen, Nachtrag

Im Zuge der Besprechung einer Vorab-Version dieses Artikels im internen Bereich des 3DCenter Forums :-) beschäftigte sich Demirug, Programmierer des D3D AF-Testers noch einmal genauer mit der Applikations-spezifischen Optimierung von Unreal Tournament 2003. Da nVidia diese Optimierung scheinbar allein aus dem Dateinamen "UT2003.exe" ableitet (kann man leicht nachprüfen, indem man andere Anwendung entsprechend umbenennt, was eine höhere Performance ergibt) sollte eben jener D3D AF-Tester kurzerhand in "UT2003.exe" umbenannt werden, um so die nVidia-Optimierung unter Unreal Tournament 2003 genauer klassifizieren zu können.

Leider gab es hier erst einmal ein gewisses "technisches" Problem, womit Demirug unverhofft auf eine weitere "Optimierung" seitens nVidia gestoßen war: Benennt man die aktuelle und auch für den bisherigen Test benutzte Version 1.1 des D3D AF-Testers in "UT2003.exe" um, passiert unerwarteterweise gar nichts - die Ergebnisse bleiben exakt dieselben. Erst als Demirug eine neue Version des D3D AF-Testers auflegte, verschwand dieser Effekt und es konnte nach dem Umbenennen in "UT2003.exe" auf die Bildqualität von Unreal Tournament 2003 ermittelt werden.

Ganz offensichtlich hat nVidia also in seinen Treiber eine kleine Absicherung eingebaut, welche diesen Trick der Umbenennung in "UT2003.exe" ausgerechnet beim D3D AF-Tester verhindern soll. Der einzige uns dafür derzeit einleuchteten Grund dieser Absicherung ist, daß man seitens nVidia wohl verhindern will, daß die Hardware-Tester mit eben jenem (mittlerweile sogar von nVidia empfohlenen) Werkzeug die schlechtere Filterqualität unter Unreal Tournament 2003 sauber ermitteln können.

Dies aber nur nebenbei, technisch gesehen kam Demirug mit der brandneuen Version des D3D AF-Testers nun doch zu Ergebnissen, wie sich die nVidia-Filterqualität unter Unreal Tournament 2003 verhält. Hier seine Ausführungen zu allen drei nVidia-Filtermodi:

    Qualität/Quality Filtermodus
  • Die trilineare Filterung auf der Stage 0 wird nur für ca. der Hälfte aller Pixel angewandt.
  • Die trilineare Filterung auf den Stages 1-7 ist nur noch ein ganz schmales Band zwischen den MipMaps.
  • Texturen auf der Stage 0 bekommen den maximalen Level an anisotroper Filterung.
  • Texturen auf den Stages 1-7 bekommen maximal einen Level an anisotroper Filterung von 2.

Klick öffnet verlustfrei komprimierten Screenshot in 800x600er Auflösung

    Leistung/Performance Filtermodus
  • Trilineare Filterung ist gar nicht mehr vorhanden, man bekommt nur noch eine bilineare Filterung.
  • Texturen auf der Stage 0 bekommen den maximalen Level an anisotroper Filterung.
  • Texturen auf den Stages 1-7 bekommen maximal einen Level an anisotroper Filterung von 2.
    Hohe Leistung/High Performance Filtermodus
  • Trilineare Filterung ist gar nicht mehr vorhanden, man bekommt nur noch eine bilineare Filterung.
  • Texturen auf der Stage 0 bekommen den maximalen Level an anisotroper Filterung - aber nur mit der Filterung, welche bei der Einstellung sowieso verwendet wird (prinzipielle Winkelabhänigkeit bei diesem Filtermodus).
  • Texturen auf den Stages 1-7 bekommen gar keine anisotrope Filterung.

Diese Beobachtung gilt wie gesagt nur für Unreal Tournament 2003, bei allen anderen Applikationen (nach derzeitigem Kenntnisstand!) verhält sich der nVidia-Treiber "normal" und führt für alle Texturen-Stufen die Berechnung des trilinearen anisotropen Filters so aus, wie dies per Control Panel oder Tweaktool angefordert wurde.


   Fazit

Folgendes läßt sich damit aus dem vorhergesagten zusammenfassend ableiten:

  • nVidia benutzt unter 3DMark2001 und 3DMark03 Applikations-spezifische Optimierungen in den Treibern 44.03 bis 44.90, welche unter ersterem Benchmark ca. 16 Prozent und unter zweitem Benchmark ca. 62 Prozent (!) Performance-Vorteil unter 8x anisotropen Filter einbringen. Ob diese Applikations-spezifischen Optimierungen Nachteile in der Bildqualität mit sich bringen, wurde nicht nachgeprüft, da Applikations-spezifische Optimierungen in theoretischen Benchmarks sowieso absolut gar nicht zu suchen haben.

  • nVidia benutzt weiterhin unter Unreal Tournament 2003 eine Applikations-spezifische Optimierung in den Treibern 44.03 bis 44.90, welche in den Flyby-Messungen ca. 57 Prozent (!) Performance-Vorteil unter 8x anisotropen Filter einbringt. Wieviel dieser 57 Prozent allerdings ohne und wieviel mit Bildqualitäts-Verlust erreicht wurden, konnte mit unseren Möglichkeiten nicht ermittelt werden und muß offenbleiben. Nachgewiesen werden konnte jedoch, daß nVidia zumindestens speziell unter Unreal Tournament 2003 nur einen pseudo-trilinearen Filter einsetzt, sowie beim anisotropen Filter teilweise MipMaps nach hinten verschiebt und teilweise nicht mit vollem ansiotropen Filter arbeitet. Weiterhin konnte nachgewiesen werden, daß dies nicht der Normalzustand der nVidia-Treiber ist, da diese in allen anderen Applikationen sauber trilinear anisotrop filtern. Somit gilt es als erwiesen, daß die Applikations-spezifische Optimierung von Unreal Tournament 2003 seitens nVidia eine definitiv schlechtere Bildqualität mit sich bringt, auch wenn der Unterschied recht gering ist.

  • ATi benutzte unter 3DMark03 bis zum Treiber 03.4 eine Applikations-spezifische Optimierung, welche diesem Benchmark ca. 2 Prozent Performance-Vorteil unter 16x anisotropen Filter einbringt. In den Treibern 03.5 und 03.6 ist diese Optimierung nicht mehr feststellbar, insofern kann man diesen Fall als erledigt betrachten.

  • ATi benutzt unter 3DMark2001 eine Applikations-spezifische Optimierung in den Treibern 03.4 bis 03.6, welche diesem Benchmark ca. 4 Prozent Performance-Vorteil unter 16x anisotropen Filter einbringt. Ob diese Applikations-spezifische Optimierung Nachteile in der Bildqualität mit sich bringen, wurde nicht nachgeprüft, da Applikations-spezifische Optimierungen in theoretischen Benchmarks sowieso absolut gar nicht zu suchen haben.

  • ATi benutzt weiterhin eine generelle Optimierung unter dem anisotropen Filter für alle Direct3D-Anwendungen in den Treibern 03.2 bis 03.6, welche unter den Flyby-Messungen von Unreal Tournament 2003 ca. 20 Prozent Performance-Vorteil unter 16x anisotropen Filter einbringt, in anderen Benchmarks jedoch so gut wie gar nicht anschlägt. Dabei filtert ATi beim anisotropen Filtern nur die Basis-Textur trilinear, weitere Texturen allerdings nur noch bilinear. Nachteile in der Bildqualität außerhalb dieses bilinear/trilinearen Misch-Filters konnten dagegen nicht nachgewiesen werden. Trotzdem muß die Frage offenbleiben, ob diese generelle Optimierung des anisotropen Filters nicht ebenfalls eine unerlaubte Optimierung darstellt, da schließlich nicht der ATi-eigene Anspruch der "trilinearen Filterung" erreicht wird. Auch bietet hier nVidia - bis auf die festgestellte Ausnahme bei Unreal Tournament 2003 wohlgemerkt - einen prinzipiellen trilinearen Filter für alle Texturen-Stufen.

Generell läßt sich auf Grundlage dieser Erkenntnisse erst einmal empfehlen, 3DMark2001 und 3DMark03 wegen der festgestellten Applikations-spezifischen Optimierungen seitens ATi und nVidia nicht mehr als Benchmark einzusetzen. Und ganz allgemein gilt wohl, die Augen weit offenzuhalten und die vorhandene Bildqualität - besonders bei neuen Treibern - zukünftig lieber zweimal zu prüfen, als blind davon auszugehen, daß schon alles irgendwie passen wird.

In einer absolut vertrackten Situation befinden wir uns dagegen im Fall von Unreal Tournament 2003. Sicherlich benutzt nVidia einwandfrei eine unerlaubte Optimierung - diese greift jedoch die statische Bildqualität nur marginal an, sondern ersetzt "nur" den trilinearen Filter durch einen pseudo-trilinearen. Das ist zwar weiterhin eine unerlaubte Applikations-spezifische Optimierung, doch anderseits ist dies auch - grob verglichen - der Normalzustand bei ATi unter dem anisotropen Filter. Denn ATi ersetzt in diesem Fall ebenfalls den trilinearen Filter, bei ATi einfach durch einen bilinearen/trilinearen Misch-Filter.

So ist denn die Ausgangs-Grundlage für ATi & nVidia speziell unter Unreal Tournament 2003 und unter anisotropen Filter fast gleich, da beide keinen vollständigen trilinearen Filter benutzen. Theoretisch könnte man in dieser Situation also darüber hinwegsehen, daß jene Filterung im Fall von nVidia definitiv eine unerlaubte Optimierung darstellt und im Fall von ATi zumindestens eine potentiell unerlaubte Optimierung. Beide Grafikchip-Hersteller haben sich hier soweit herunter-optimiert, daß die Bildqualität ironischerweise fast wieder gleich ist. nVidia hat es hier also "geschafft", eine unerlaubte Optimierung einzusetzen, welche dann aber letztlich nicht schlechter aussieht als der ATi-Normalzustand ;-).

Allerdings würden sich durch diesen Vergleich natürlich wieder einige andere Probleme ergeben: Denn ohne anisotropen Filter filtert ATi unter Unreal Tournament 2003 wieder normal (rein trilinear), während es bei nVidia bei der unerlaubten Optimierung in Form des festgestellten pseudo-trilinearen Filters bleibt. Dafür zeigen dann wiederum andere Benchmarks ein Ungleichgewicht der Bildqualitäten zuungunsten von nVidia: Denn während beim anisotropen Filterung nVidia außerhalb von Unreal Tournament 2003 überall klar trilinear filtert, gibt es bei ATi nur den beobachteten bilinearen/trilinearen Misch-Masch bei allen Applikationen. Wenn man aber diesen letztgenannten Vergleich als generell fair ansieht, dann ist auch die Applikations-spezifische Optimierung seitens nVidia unter Unreal Tournament 2003 nicht mehr als "unerlaubt" einzustufen, da sie letztlich nur dasselbe tut.

Das ganze ähnelt also ungefähr dem berühmten gordischen Knoten, welchen man offenbar nur zerschlagen, nicht aber wirklich lösen kann. Sicherlich wäre es das einfachste, die bilineare/trilineare anisotrope Filterung des ATi-Treibers als "unerlaubt" abzutun und einfach nur noch auf die reine trilineare Filterung des rTools zu setzen, dann hätte man - bis auf Unreal Tournament 2003 - eine Waffengleichheit mit nVidia. Allerdings muß man dabei auch immer bedenken, daß erfahrungsgemäß 90 Prozent aller ATi-Anwender für Einstellungen wie den anisotropen Filter sicherlich das ATi Control Panel nutzen und nicht externe Tools wie den aTuner oder das rTool.

Falls man also alle seine Benchmarks nur noch mit dem rTool und damit am ATi Control Panel vorbei bestreitet, arbeitet man damit letztlich auch an der Masse der Anwender vorbei. Insofern können wir derzeit noch nicht sagen, wie wir uns in dieser Frage für unser kommendes HighEnd Grafikkarten-Roundup entscheiden werden, dies ergibt sich möglicherweise auch erst durch die Diskussion zu diesem Artikel.

Besser wäre es sicherlich, wenn beide Grafikchip-Entwickler die Qualitäts-Modi in ihren Treibern unangetastet lassen würden und jegliche Optimierungen, ob Applikations-spezifisch oder generell, in extra Modi einbauen würden. Wohl wahrscheinlich niemand hat etwas gegen Optimierungen, welche kaum einen sichtbaren Qualitäts-Verlust haben und zwischen 20 und 57 Prozent Performance-Vorteil bringen. Sollten wir in zukünftigen Treibern solche Extra-Modi finden, auch wenn nur für einzelne Spiele nutzbar, würden wir diese wahrscheinlich zusätzlich zum reinen Qualitäts-Modus mitbenchen wollen. Nur eben in den Qualitäts-Modi selber haben Optimierungen eigentlich nichts zu suchen, wollen beide Grafikchip-Entwickler ernsthaft von sich behaupten, Vorreiter in Sachen Bildqualität zu sein.


 

Nachtrag vom 14. August 2003:

Die soeben von nVidia veröffentlichen neuen offiziellen Treiber 45.23 und 45.24 enthalten - nach einem kurzen Gegentest - keine Änderungen, welche diesen Artikel betreffen. Die festgestellte Applikations-spezifische Optimierung von Unreal Tournament 2003 ist jedenfalls zweifelsfrei weiterhin in diesen Treibern enthalten. Der einzige Unterschied wäre, daß es nun - wieder einmal - nicht mehr möglich ist, durch Umbenennen des D3D AF-Testers in "UT2003.exe" die Filterqualität von Unreal Tournament 2003 mit dem D3D AF-Tester darzustellen.

Aus der Diskussion zum Artikel hat sich im übrigen eine Erklärung dafür ergeben (Thx @ BlackBirdSR), weshalb manche ATi-Benchmarks mit dem vollen trilinearen Filter per rTool schneller sind als mit bilinearem/trilinearem Filter per Control Panel: Letzteres schreibt seinen Filter der Anwendung vor, egal was diese anfordert, während rTool seinen vollen trilinearen Filter nur dann liefert, wenn nicht direkt etwas anderes angefordert wurde. Konkret bedeutet dies also, daß das rTool bei einer Anwendung, welche explizit nur einen bilinearen Filter verlangt, auch nur einen bilinearen Filter liefert - eigentlich sollte es ja auch genauso sein.

Wird der Filter allerdings vom ATi Control Panel gesteuert, so liefert dieses auch auf eine klare Anforderung eines trilinearen oder bilinearen Filters immer nur den aufgezeigten bilinearen/trilinearen Mix. Normalerweise sind somit die Benchmarks mit rTool langsamer, weil mit diesem normalerweise voll trilinear Filter gefiltert wird - bei Anwendungen, welche oftmals aber einen bilinearen Filter anfordern, kann sich dieses Verhältnis aber wie beobachtet auch drehen. Solche Anwendungen sind beispielsweise die beiden 3DMarks und Counter-Strike - und genau dort waren die rTool-Benchmarks schließlich schneller als jene per Control Panel.


Nachtrag vom 18. August 2003:

Es gibt zur ATi-Optimierung unter dem anisotropen Filter den berechtigten Einwand, daß man hier diese Optimierung im von uns gewählten Testspiel Unreal Tournament 2003 auch mit Boardmitteln umgehen kann. Dazu schaltet man den anisotropen Filter im ATi Control Panel aus und diesen dann wieder in den ini-Dateien des Spiels an (UT2003.ini, LevelOfAnisotropy). Allerdings hat dies zweierlei Nachteile: Erstens hat es sich eingebürgert, den anisotropen Filter über Control Panel oder Tweaktools einzustellen, nicht aber im Spiel. Dies hat auch den Vorteil, daß man alle Spiele generell mit einer AF-Einstellung spielen kann. Für einen Spieler, welcher beispielsweise generell alles mit 8xAF spielt, wäre es umständlich, extra für Unreal Tournament 2003 AF im Control Panel wieder zu deaktivieren und für andere Spiele wieder zu aktivieren.

Der zweite Nachteil ist dann noch viel schwerwiegender: ATi optimiert schließlich den anisotropen Filter für alle Direct3D-Games. Selbst daß es für unser Testspiel Unreal Tournament 2003 eine Lösung mit Boardmitteln gibt, kann dies nicht darüber hinwegtäuschen, daß diese Lösung mit den wenigsten Direct3D-Spielen funktioniert, da die wenigsten eigene Einstellungen für den anisotropen Filter mitbringen. Insofern kann die Applikation-Einstellung des ATi-Treibers auf keinen Fall als generelle Lösung für die ATi-Optimierung des anisotropen Filter angesehen werden.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back 3DCenter-Artikel - Index Home

Shortcuts
nach oben