GeForce 3 Ti500 vs. Radeon 8500 - DirectX 8.1 Performance | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Das Testsystem
Eines gleich vorweg, in diesem Artikel soll es um die DirectX 8.1
Leistung der beiden GPU's gehen - also Pixel und Vertex Shader. Es wurden
jedoch keine DirectX 8 / 8.1 Spiele herangezogen, da Aquanox, mit den ATi-Treibern
(6.13.10.6011 - nicht als Download verfügbar!), noch immer kleine
Darstellungsfehler aufwies. Das Comanche 4 Demo bietet leider keinen Benchmarkmodus,
somit blieben keine Spiele mehr übrig, welche Pixel & Vertex Shader
gleichzeitig verwenden. Wer mehr über die
Radeon 8500
und die
GeForce 3
erfahren möchte, den verweise ich auf unsere Reviews. Leider war
The Tech Report
ein wenig schneller als wir, aber egal, die haben super Arbeit geleistet,
also werft auch darauf mal einen Blick.
UPDATE: Ich habe Aquanox Benchmarks angefügt, jedoch kam es dabei noch zu Texturefehlern (beim grossen Schiff, mit dem Loch in der Seite, die Pflanzen funktionierten) - Ob dies Auswirkungen auf die Ergebnisse hat kann man erst sagen, wenn fehlerfreie Treiber verfügbat sind. Es wurden (nicht verfügbar) ATi Windows XP Treiber 6.13.10.6018 verwendet.
Technische Daten im Überblick:
So wird in der Tabelle gerechnet:
"feste" T&L Leistung Wenn die "feste" T&L Pipeline (wird bei dem NV20 durch ein Vertex Shader Programm erzeugt) verwendet wird, hat der R200 klare Vorteile. Es könnte sein, dass die zweite T&L Pipeline des R200 (Vertex Shader / feste T&L) hier für die Beleuchtungsberechnung verendet wird. Diese Runde geht an den R200, welcher zwar um 35 Mhz höher getaktet ist, damit jedoch dieser Performancesprung nicht zu erklären ist. Was bei grossen Polygonmengen zu beachten ist, ist die richtige Anordnung der Vertexdaten. DirectX 8.1 bietet hier eine Möglichkeit. Die D3DX Hilfsbibliothek (ob professionelle Spiele diese Bibliothek verwenden ist fraglich, da kommerzielle 3D-Engines solche Funktionen auch beherrschen) verfügt über Funktionen, welche das Laden von Objekten und anderen oft benötigte Funktionen bereitstellt. Hier gibt es auch eine "Optimize" Funktion. Dort kann angegeben werden, wie die Vertexdaten zu reorganisieren sind. Sie werden entweder mit D3DMESHOPT_VERTEXCACHE optimal für den Vertexcache angeordnet (den Vertexcache des NV20 / NV2A -> da NVIDIA und Microsoft viel miteinander zu tun haben!) oder mit D3DMESHOPT_STRIPREORDERD in möglichst lange Strips zusammengefasst. Beide GPU's profitieren enorm von diesen Optimierungen, der NV20 ist bei der ersten Methode, der R200 bei der zweiten Methode schneller. Im der oberen Grafik wurde jeweils für beide die beste Methode gewählt. Unten sehen wir, wie eine GeForce 2 PRO (200/400 Mhz) ohnen und mit optimierten Einstellungen zurechtkommt. Beim NV20 und dem R200 verlaufen die Kurven ähnlich krass. Die T&L Leistung ist also ohne gewisse Optimierungen kaum von Nutzen. Dies war auch ein Grund, warum viele DirectX 7 T&L Titel nicht wirklich schneller waren, als ohne T&L.
Vertex Shader
Heirzu wurde NVIDIA's Effect Browser verwendet. Er lief in 1024x768x32, das Fenster war maximiert, die 3 Teilbereiche wurden nicht verändert. Somit wurde etwa die Hälfte des Bildschirms für die 3D-Darstellung benötigt.
Pixel Shader
Die Pixel Shader Performance ist ein wenig schwieriger zu ermitteln. Da der NV20 nur Pixel Shader 1.0 & 1.1 unterstützt, konnte ich nur diese miteinander Vergleichen. Wie Leistungsfähig die 1.4'er Pixel Shader der R200 sind, kann man erst beurteilen, wenn NVIDIA oder andere Firmen auf diesen Standart setzen.
Hier hat der NV20 einen klaren Vorteil. Da Microsoft (XBox) die Pixel & Vertex Shader Architektur von NVIDIA lizenziert hat, dürfte die Pixel Shader 1.0 / 1.1 Sprache nahe am Maschinencode der NV20 GPU sein. ATi's R200 muss den Code wahrscheinlich erst aufwendig umwandeln (im Treiber oder der GPU). Die Architektur der Pixel Shader 1.4 ist fast vollständig anders, andere Befehle, anderer Aufbau. Somit haben hier GPU's, welche nicht von NVIDIA stammen, einen Nachteil, wenn sie nicht versuchen eine ähnliche Architektur nachzuahmen.
3D-Mark 2001 (Das erste Pixel & Vertex Shader Spiel ;) )
Hier ergibt sich ein ähnliches Bild, wie bei den synthetischen
Einzeltests. Bei den Pixel Shadern liegt der NV20 vorne, wohingegen beim
Vertex Shader der R200 davonzieht. Da beide Hersteller für diesen
Benchmark optimieren, kann davon ausgegangen werden, dass die Treiberabteilung
hier ganze Arbeit geleistet haben wird. Ob die Unterschiede der GPU's,
bei richtigen Pixel & Vertex Shader Spielen, so gross wie beim Game
4 Nature Test sein werden bleibt abzuwarten. Sobald Aquanox mit den ATi-Treibern
richtig läuft, werde ich Benchmarks nachreichen.
Höhere Genauigkeit der Pixel Shader
Der R200 hat nicht nur eine höhere Version der Pixel Shader, sondern
kann zudem mit höherer Präzision rechnen.
Wie in dieser Tabelle ersichtlich wird, reichen die Temporären- und Texture-Register bei dem NV20 nur von [-1.0 +1.0]. Es handelt sich um Festkommazahlen, mit einer Genauigkeit von 8 Bit für die Nachkommastellen. Beim R200 ist der Wertebereich erheblich grösser, von [-8.0 +8.0]. Somit können Berechnungen genauer ausgeführt werden, da die Ausgangszahlen, beim Konvertieren, nicht so stark normalisiert werden müssen.
Wenn es innerhalb eines Pixel Shaders eine Wertebereichsüberlauf gibt, dann wird die Zahl an den Wertebereichsgrenzen festgehalten (engl. Clamp). Das Vorzeichen dreht sich also nicht einfach um. Beim Design der Pixel Shader Programm muss man dies berücksichtigen, sonst kommt es zu merkwürdigen Ergebnissen: Links sehen wir den NV20, welcher einen Überlauf produziert, deutlich zu sehen ist - dafür ist allerdings der Programmierer verantwortlich, nicht die GPU! Rechts der R200 - man beachte die detailiertere Spiegelung in der Kugel.
Aquanox v1.15 (
Timedemo von 3D-Center
)
Die Aquanox Benchmarks wurden in 1024x768x32 und 1600x1024x32 durchgeführt.
Bevor Fragen kommen, "Warum nicht 1600x1200x32?" - bei den Einstellungen im
Game hab ich die erste !600'er Einstellung ausgewählt, im Glauben, es
sei 1600x1200 - später, als ich die Screenshots durchgesehen hab, fiel
mir auf, dass es sich um 1600x1024 nicht um 1600x1200 handelt - was die Ergebnisse
aber nicht verfälscht. Ich habe dann eine Benchmark mit 1600x1200x32
durchgeführt und die Unterschiede zu 1600x1024x32 waren verschwindent
gering. Die Messungenauigkeit der Benchmarks beträgt + /- 1 FPS, weil
man am Ende ein Screenshot machen muss (sollte), was eben nicht immer zur
selben Zeit möglich ist.
Fazit
Hier fällt sofort auf, dass der R200 in allen Bereichen, ausser bei
den maximalen FPS ohne AF(anisotropisches Filtern) gewinnt. AF wurde jeweils
bei beiden GPU's in der maximalen Stufe gewählt.
Bei 1600x1024x32 (nicht 1600x1000x32, sorry Schreibfehler!) liegen beide GPU's dicht zusammen, obwohl der R200 mehr Bandbreite zur Verfügung hat. Lediglich bei den durchschnittlichen FPS gewinnt der R200, dafür verbucht der NV20 einen Sieg bei den maximalen FPS. Wenn AF eingeschaltet wird, verliert der NV20 deutlich an Leistung. Fast 50 % bei den maximalen FPS sprechen eine deutliche Sprache.
Wer also auf bessere Texturequalität steht, für den ist der R200
besser geeignet. Ohne AF sind beide GPU's gleichwertig, mit leichten Vorteilen
für den R200. Die Ergebnisse zeigen auch mal wieder, wie deutlich die
theoretischn Tests (siehe oben) von einem wirklichen Spiel unterscheiden.
Normalerweise hätte ich gedacht, dass die NV20 bei Verwendung des PS
1.0 - 1.1 schneller wäre, als der R200. Jedoch kann ich keine Aussagen
darüber machen, wie hoch der Pixel Shader Anteil pro Bild ist, sprich
wieviele von 10000 Polygonen den Pixel Shader verwenden.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|