Zum 3DCenter Forum
Inhalt




S3 DeltaChrome vs. XGI Volari

10. Februar 2005 / von Robbitop / Seite 7 von 20


   Die Architekturen  (Forts.)

  Z-Bufferkomprimierung

Um Artefakte zu vermeiden, entschied man sich dafür, die Tiefenwerte verlustlos zu komprimieren. Prinzipiell versuchen verlustfreie Kompressionsverfahren, ein sich wiederholendes Muster zu finden und dieses durch Substitution in der Ausdehnung zu verringern. Z-Werte werden aufgrund ihrer relativ geringen Größe in ganzen Tiles geschrieben. So bekommt man genügen Werte zusammen, damit der Komprimierungsalgorithmus effektiv funktioniert Eine Z-Kompression kann den Z-Traffic bis zu einem Faktor von 4 komprimieren. Da Tiefeninformationen einen nicht unerheblichen Anteil an Bandbreite ausmachen, bringt diese natürlich einen großen Bandbreitengewinn. Alle Karten bis auf den Volari untersützen dieses Feature.

  Farbkompression

Jeder zu rendernde Farbwert kostet viel Bandbreite. Jedoch lassen sich Farben nur schlecht verlustfrei komprimieren. Beim Multisampling Anti-Aliasing ist dies anders. Da dieses nur bei Polygonkanten wirkt, beinhalten lediglich die Pixel an den Kanten verschiedenfarbige Subpixel. Die Mehrzahl der Pixel auf dem Bildschirm liegt allerdings in den Dreiecksflächen. Ein solcher Pixel besitzt Subpixel mit derselben Farbe. Durch Substitution wird beispielsweise "4*rot" statt "rot rot rot rot" in den Framebuffer geschrieben.

Dabei handelt es sich allerdings nur um eine Pseudokompression. Denn eine echte Kompression spart nicht nur Bandbreite sondern auch Speicherplatz. Da lediglich die GeForce und die Radeon Multisampling Anti-Aliasing unterstützen, ist auch nur dort der Einsatz einer Farbkompression von Nutzen.

  Der Speichercontroller



nicht unterteiler Controller
 
Zweifach unterteilter Controller

Der Speichercontroller bildet bei aktuellen Grafikboliden das Rückrad der der Gesamtleistung. Eine unabhängige Unterteilung des Speichercontrollers ist ein oft genutztes Mittel, um die Bandbreiteneffizenz zu erhöhen. Durch die Verbesserung der Granularität wird eine Verringerung des Verschnitts beim Zugriff auf den lokalen Videospeicher erreicht.

Ist ein 256bittiger (128 Bit DDR) Controller jedoch in zwei unabhängige 128 Bit Interfaces aufgeteilt, so halbiert sich der Verschnitt. Teilt man es in 4x 64bittige Interfaces auf, so viertelt sich der theoretische Verschnitt. Bei einem 128 Bit DDR-Interface, wie es bei den Karten vorliegt, um die es in diesem Artikel geht, können in einem Takt 256 Bit (2x128 Bit durch Nutzung beider Taktflanken) in den Speicher geschrieben oder aus ihm gelesen werden.

Ein Farbwert für einen Pixel kostet 32 Bit, der dazugehörige Tiefenwert beinhaltet nochmals 32bit (24bit Z und 8bit Stencil). Es müssen pro Takt also mindestens 64bit an Daten übertragen werden. Da nur ganze Dreiecke in einem Burst (Durchgang) bearbeitet werden, muss die Pixelmenge des Dreiecks also einen kleinsten gemeinsamen Teiler von vier haben, damit der Verschnitt eine leere Menge beinhaltet.

Ist die Menge an Pixeln des Dreiecks relativ groß, so verliert der relative Verschnitt bei Nichteinhaltung des KGTs von vier an Bedeutung. Der Trend hingegen verläuft seit Jahren zu immer kleineren Dreiecken mit immer weniger Pixeln. Somit wird die Verwendung eines unterteilten Speichercontrollers immer wichtiger.

Der DeltaChrome beinhaltet als eine der wenigen heutigen Grafikbeschleunigern keinen unterteilten Speichercontroller. Die chipinternen Texturcaches halten Texel vorrätig, damit beim Textursampeln nicht jedes einzelne Texel aus dem RAM geholt werden muss. Viel schlimmer wird es jedoch mit Pixelshaderzugriffen: Diese können in sehr stochastischer Form vorliegen, so dass Caches nicht viel nützen. In diesem Falle würde viel Verschnitt die Folge sein. Die anderen Kontrahenten verfügen über jeweils einen zweifach unterteilen Speichercontroller.

  Architekturfazit

Der Aufbau des DeltaChromes wirkt auf den ersten Blick für einen Sub-100$ Grafikchip ungewöhnlich stark. Jedoch sticht seine Achhillesferse sofort ins Auge. Es ist die Bandbreite, welche in diesem Design zu einem starken Falschenhals wird. Immerhin ist der DeltaChrome in der Lage, 8 Farbwerte +8 Tiefenwerte pro Takt zu erzeugen.

Das ergibt eine Datenmenge von 512 Bit pro Takt. Die Z-Kompression kann das in Idealfällen auf 320 Bit reduzieren. Das Speicherinterface lässt jedoch lediglich 256bit pro Takt zu. In der Praxis bei Multitexturing und anisotropen Filterung dauert die finale Berechnung eines Pixels natürlich deutlich länger, somit bleibt, dank der Texturcaches, mehr Zeit, um diese Daten zu übertragen.

Texturcaches verringern die durchschnittliche Texturbandbreite. Man kann Pi mal Daumen davon ausgehen, dass man pro bi-Sample im Schnitt ein neues Texel braucht. Bei 8 Pipes wären das 256 Bit (bei unkomprimierten 32-Bit-Texturen.) Da der DeltaChrome fast-Tri-TMUs hat, benötigt er aber sehr viel mehr Texel pro trilinearem Textursample. Demzufolge braucht er einen besonders großen Texturcache.

Es ist traurig, zu sehen, dass der kleinste IHV theoretisch ein meilenweit besseres Anti-Aliasing als auch einen besseren anisotropen Filter als nVidia und ATI bietet. In der Praxis ist das Anti-Aliasing allerdings kritisch zu sehen. Hier spielt die Performance neben der Bildqualität eine wichtige Rolle. Supersampling Anti-Aliasing kostet viel Leistung und ist mit dem DeltaChrome nur bei älteren Spielen im Zusammenspiel mit anisotroper Filterung einsetzbar. Multisampling Anti-Aliasing wäre hier natürlich günstiger und der Leistungsklasse des DeltaChrome eher angepasst.

Der Volari V8 verfügt nur über eine echte Quadpipeline, über nur zwei Vertexshader, keine Z-Kompression, kein Anti-Aliasing und keinen anisotropen Filter. Dies ist eine äußerst schwache Vorstellung seitens XGI. Daran merkt man, wo bei beiden kleinen Herstellern die Prioritäten liegen, nämlich in der Balkenlänge bei Benchmarks - nicht mehr in der Bildqualität. Dem Autor ist dies nach ein paar Stunden mit dem Spiel Max Payne sehr stark aufgefallen, wie gut Anti-Aliasing und anisotrope Filterung sein kann - sein muss!

ATI zeigt hingegen, dass weniger mehr sein kann. Trotz nur einer Quadpipeline bietet man die größte theoretische Pixelshaderleistung. Anti-Aliasing, effizienzsteigernde Features… die Radeon zeigt in kaum einem Bereich sichtliche architektonische Schwächen trotz geringem Transistorcount (75 Mio. Transistoren). Die GeForce 5700 bietet eine zukunftsweisende Architektur, jedoch ist vor allem die arithmetische Pixelshaderleistung bei Floating Point-Shadern zu schwach.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back Weiter / Next

Shortcuts
nach oben