GeForce 3 Ti500 vs. Radeon 8500 - DirectX 8.1 Performance

Das Testsystem

Komponente
Beschreibung
Betriebssystem(e)
Windows XP (DirectX 8.1 Build 0810)
Treiber
ATi 6.13.10.6011 / 6.13.10.6018, NVIDIA Detonator 23.11, VIA 4in1 4.37
Benchmark(s)
3D-Mark 2001, DirectX 8.1 SDK, NVIDIA Effects Browser, ATi Pixel Shader 1.4 Demo, Aquanox v1.15
CPU
AMD Duron 1 Ghz (133 Mhz FSB)
Mainboard
Abit KT7a (VIA KT 133a) ohne Raid
Speicher
2x 256 MB PC133 Micron (2-2-2)
Festplatte(n)
Western Digital WDAC418000 18 GB, Maxtor 52049H3 20 GB
Grafikkarte
ATi Radeon 8500 (275/275 Mhz, ASUS V8200 Deluxe GeForce 3 (mit Ti500 Takt: 240/500 Mhz) (beide mit AGP 4x betrieben)
Netzwerkkarte
Realtek RTL8139 100 MBit
Soundkarte
Creative Soundblaser Live Value

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:


NVIDIA GeForce3 (NV20)
NVIDIA GeForce 3 Ti 200 / 500 (NV20)
ATi Radeon 8500  (R200)
Pixel-
Pipelines
4 4
4
Textureneinheiten
(pro Pipeline)
2 2
2
Busbreite intern (Bit)
256
256
256
max. Texturen pro Pixel
4 4
6
Chiptakt (MHz) 200 175 / 240
275
theo. max. Füllrate
(GPixel/Sec)
0,8 0,7 / 0,96
1,1
theo. max. Füllrate
(GTexel/Sec)
1,6 1,4 / 1,92
2,2
Speicherinterface (Bit) 128 DDR 128 DDR
128 DDR
Speichertakt (MHz) 230 200 / 250
275
Speicherbandbreite
(GB/Sec)
7,36 6,4 / 8
8,8
Texelbandbreite
(Bytes / Texel)
4,6 4,57 / 4,17
4,4
Pixelbandbreite
(Bytes / Pixel)
9,2 9,14 / 8,33
8,8
Speichergrößen (MB) 64 64
64 / 128
DirectX Version (Pixel Shader)
DX 8.1 (1.1) DX 8.1 (1.1)
DX 8.1 (1.4)
TnL Einheit
ja
ja
ja
64 Bit Farbtiefe
nein
nein
nein
VertexShader
Einheiten
1 1 1
TruForm
Einheit
nein nein
ja
Bandbreiten
Features
Texturekompression,
Lightspeed Architektur
Texturekompression,
Lightspeed Architektur
Texturekompression,
HyperZ II
FSAA
Arten
Standard,
Quincunx
Standard,
Quincunx
adaptives FSAA
HydraVision/
TwinView/DualHead
nein nein
ja

So wird in der Tabelle gerechnet:
  • GB/s = (275 Mhz *2(DDR) *128 Bit / 8 Bit) / 1000 = 8,8 GB/s -> NVIDIA's Weg der grössten Zahlen
  • so nicht: GB/s = (275 Mhz *2(DDR) *128 Bit / 8 Bit) / 1024 = 8,59 GB/s
  • so auch nicht: GB/s = (275000000 Mhz *2(DDR) *128 Bit / 8 Bit) / (1024*1024*1024) = 8,19 GB/s
Hauptunterschiede der beiden GPU's:
  • R200 - Pixel Shader bis Version 1.4
  • R200 - Truform (N-Patches)
  • NV20 - Pixel Shader bis Version 1.1
  • NV20 - RT-Patches
Truform und RT-Patches werden in einem anderen Artikel behandelt.

"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.

T&L


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.

T&L

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.

Vertex Shader

Die Y-Achse gibt die erreichten FPS an, die X-Achste die Anzahl der Vertex Shader Programmbefehle. Folgende Effeckte wurden verwendet (von links nach rechts):
  1. Toon Shading
  2. Membrane lighting
  3. Anisotropic Rendering
  4. Rainbow Rendering
  5. Sin Wave Perturbation
  6. Shadow Volume Demo
  7. Silhouette Rendering
  8. Layered Fog
  9. Model Viewer
  10. Mesh Blending (Dolphin)
  11. Matrix Palette Skinning with Dot3
  12. Perlin Noise Generation
  13. Many Point Lights
Deutlich ist zu sehen, dass der R200 bei fast allen Vertexprogrammen gewinnt, selbst bei gleicher Taktung wie der NV20. Der NV20 kann sich lediglich beim "Mesh Blending" absetzen, da hat NVIDIA wahrscheinlich besser optimiert. Es gibt natürlich noch viele weiter Demos, jedoch beanspruchen diese den Vertex Shader nicht so kräftig. Übrigens, NVIDIA's 23.11'er Treiber brachten bei diesen Tests eine klare Leistungssteigerung gegenüber den 21.83'er Treibern! Diese Tatsache wird NVIDIA auch bewusst sein, deshalb besitzt die XBox GPU (NV2A) auch eine zweiten Vertex Shader.

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.

Pixel Shader

Die Y-Achse gibt die erreichten FPS an, die X-Achste die Anzahl der Vertex Shader & Pixel Shader Programmbefehle. Folgende Effeckte wurden verwendet (von links nach rechts):
  1. Clip-Planes with Texkill
  2. Filter Blitting (Blur)
  3. Filter Blitting (Luminance Blit)
  4. Filter Blitting (Luminance Edge Blit)
  5. Filter Blitting (Sharpen Blit)
  6. Game of Life
  7. Fire
  8. Depth of Field

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 ;) )

3D-Mark 2001

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.

Präzision

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.

HAL - GeForce 3 (Det. 23.11) HAL - Radeon 8500 (6.13.10.601)
VertexShaderVersion 1.1 VertexShaderVersion 1.1
MaxVertexShaderConst 96 MaxVertexShaderConst 192
PixelShaderVersion 1.1 PixelShaderVersion 1.4
MaxPixelShaderValue 1 MaxPixelShaderValue 8

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:

Fehler & Genauigkeit

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.

 Aquanox

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.

Aquanox

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.

Fazit

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.