ATi Catalyst 3.2 - 5.3 Treiber-Vergleich
17. Januar 2005, mit Update vom 20. Mai 2005 / von Raff / Seite 4 von 39
Multi-Sampling? Temporal-AA? Super-Sampling!
Weiterhin möchten wir hier im Namen aller Supersampling-Anti-Aliasing-Liebhaber wiederholt erwähnen, dass viele der hier genutzten Spiele stark von diesem Verfahren profitieren würden. Als prominente Beispiele allgemein seien hier die Gothic- und Serious-Sam-Reihe sowie Mafia, Call of Duty, Painkiller, Far Cry, Doom 3 und als neuester Vertreter Half-Life 2 genannt. Das allseits beliebte Multisampling Anti-Aliasing, bei dem ATi aus Qualitätssicht mit ihrer gammakorrigierten Implementierung nach wie vor führend ist, glättet zwar wunderbar Polygonkanten, ist aber z.B. bei mit Alpha-Testing realisierten Levelelementen komplett machtlos.
Alphatest-Texturen werden häufig für Vegetation, Zäune, Telefonmasten, Fensterscheiben usw. genutzt, daher sieht man in den betroffenen Spielen oft trotz aktiviertem (MS-) Anti-Aliasing flackernde und pixelige Vegetation. Bump-Mapping ist auch so ein Fall, der von MSAA nicht erfasst wird, was man sehr deutlich bei Doom 3 begutachten kann. Supersampling hingegen glättet und beruhigt diese "Problemzonen" aktueller und vor allem älterer Spiele. Weiterhin sollte jedem das störende Artefakt Moiré bekannt sein, das bevorzugt bei Gittern oder ähnlich feinen Strukturen auftritt. Dabei wirkt z.B. ein feiner Zaun oder eine Gitterbodentextur deformiert und nicht gerade scharf. Hier hilft auch nicht der Einsatz der anisotropen Filterung, einzig und allein Supersampling beseitigt diese Art von Artefakten.
Grund für den heutigen Einsatz von qualitativ unterlegenem Multisampling ist, dass dieser Algorithmus deutlich performanter arbeitet als Supersampling. Es wird zwar bei den oben genannten Objekten Bildqualität eingebüßt, allerdings in Relation zum Gewinn an Performance nur sehr wenig. Dank der dadurch gewonnenen Rechenkapazitäten ist der Einsatz einer besseren Abtastung beim Anti-Aliasing möglich, wodurch Polygonkanten noch besser geglättet werden können. In der Summe kann also mit der gleichen Grundleistung eine höhere Bildqualität erzeugt werden.
Neuere Spiele nutzen immer weniger Alphatest-Texturen und ersetzen diese durch modellierte Polygonobjekte oder das vom MSAA-Algorithmus erfasste (allerdings ressourcenintensivere) Alpha-Blending. Diese Form der Ersetzung ist nur Schritt für Schritt möglich, da mehr Details ins Bild einfließen, welche natürlich Recheneistung beanspruchen. Diese steigt praktischerweise Jahr für Jahr und inzwischen sind Grafikchips mehr als schnell genug, um ältere Spiele in Kombination mit einer performanten CPU auf dreistellige Frameraten zu bringen. Dieser Überschuss an Leistung wäre hervorragend in Supersampling investiert, um die Spiele noch ein Stückchen schöner zu machen, als MSAA in Kombination mit AF das kann. nVidia erkannte dies glücklicherweise und bietet bis heute Supersampling (max. 4x Ordered Grid) und Supersampling/Multisampling-Hybridmodi (4xS/8xS/16x) an.
Leider scheint ATis Treiberabteilung diesem Verfahren nicht viel Sinn zuzuschreiben. Es wurde schon mehrfach von der zahlenden Kundschaft der Wunsch geäußert, dieses Anti-Aliasing doch bitte auch im Windows-Treiberpaket freizuschalten und Terry "Catalyst Maker" Makedon äußerte sich vor einiger Zeit in einem Interview dazu. Bisher trafen derartige Bitten nur auf Ablehnung seitens ATi, was vor allem wegen der Tatsache unverständlich ist, dass bis zu 6xSSAA (ordered grid) in den Mac-Treibern der Radeons freigeschaltet ist. Laut Makedons Aussage würden davon nur rund 5% der Spiele profitieren - und das sei es nicht wert. Allerdings sind 5% bei zig Tausend erhältlichen Spielen unserer Ansicht nach nicht gerade wenig, zumal sich einige absolute Verkaufsschlager auch neueren Datums (siehe oben) darunter finden.
Schauen wir uns doch mal Pro & Contra bei Supersampling Anti-Aliasing an:
- Pro:
- Glättung aller Objekte auf dem Bildschirm
- leichte, aber dennoch sichtbare Schärfung der Texturen
- "Beruhigung" flimmernder Vegetation/Zäune => Wohltat für die Augen
- Ideal für ältere Spiele (viel Alphatesting)
- Beseitigung von Gitterboden-Artefakten (Moiré)
- Contra:
- extrem füllraten- und bandbreitenintensiv, daher nicht besonders schnell (2xAA verlangsamt den Chip auf die Hälfte, 4xAA auf ¼, usw.)
- bei nachträglicher Integration in den Treiber nur Ordered Grid möglich (Rasterizer unterstützt das deutlich effektivere Sparsed Grid SSAA nicht)
Gerade ältere Spiele laufen meist so flüssig, dass selbst 6xOGSSAA (teilweise) möglich sein sollte, ohne eine Diashow präsentiert zu bekommen. nVidia geht mit ihren Hybrid-Modi in die richtige Richtung: Man vereint die Vorteile beider Welten, nimmt dabei natürlich aber auch die Nachteile mit. Dennoch: Die Modi 4xS, 8xS und 16x bieten eine überwältigende Bildqualität. Für neuere und somit anspruchsvollere Spiele bringt Supersampling nur noch wenige Vorteile und der enorme Nachteil in punkto Performance überwiegt.
Anstatt den in unseren Augen wirklich sinnvollen SSAA-Support in den Treiber zu integrieren, hat man bei ATi an einer Spielerei mit dem bestehenden MSAA gearbeitet. Das seit dem Catalyst 4.8 ins Control Panel integrierte (aber mit externen Tools schon lange früher auch bei älteren Treibern auswählbare) Feature nennt sich "Temporal Anti-Aliasing" (im folgenden schlicht "TAA" genannt).
Da die Radeons ein programmierbares Subpixelmuster anbietet, ist TAA überhaupt erst machbar: Realisiert wird es durch alternierende Subpixelmuster - pro Frame erfolgt ein solcher Wechsel. Man hat hierbei die Qual der Wahl: Mit zwei Möglichkeiten ("2xT") oder mit 3 Möglichkeiten ("3xT"). Nun kommt der Part, wo man sich das Nachleuchten aktueller Monitore zu Nutze macht: Durch eine unterschiedliche Abtastung ergibt sich natürlich eine Differenz der Farbübergänge zwischen den einzelnen Frames, es kommt zu einer Art "Kantenrauschen". Farbübergänge wirken also noch weicher als es mit herkömmlichem MSAA allein der Fall wäre.
Das Verfahren hat allerdings zwei Nachteile:
- Es funktioniert nur mit aktivem VSync, da das Bild erst mit einer Maske fertig gerendert werden muss, bevor ein Wechsel erfolgt.
- Der Effekt schwindet bei niedrigen Frameraten. Stattdessen nimmt man dann ein deutlich sichtbares Flimmern an den Polygonkanten wahr. Auf Grund der öfter stattfindenen Wechsel flimmert "3xT" daher stärker als "2xT".
Hinzu kommt, dass TAA ebenfalls kein Alpha-Testing erfasst. Logisch, denn es stellt ja nur eine "Multiplikation" des auf dem Screen vorhandenen MSAA dar. Dennoch muss man TAA einen gewissen, wenn auch geringen Nutzen zusprechen: Alte Spiele, bei denen man in 60+ FPS-Regionen spielt, eignen sich hervorragend für dieses Feature. 6xMSAA kombiniert mit 3xTAA ergibt eine perfekte Glättung aller Polygonkanten, ohne dass man auch nur ein einziges Pixel erkennen kann.
Natürlich ist es immer noch die Sache von ATi, die Treiber zu schreiben, dabei sollte aber bedacht werden, dass die Implementierung von Supersampling weder ein Riesenaufwand wäre noch dass sie dafür irgendeine Kritik einstecken würden. Im Gegenteil, viele auf Qualität spezialisierte ATi-Kunden würden SSAA dankend annehmen und nicht permanent wegen dem Nicht-Vorhandensein mit nVidia-Hardware liebäugeln. Wir finden, dass man den Kunden die Wahl lassen sollte, was man denn aktivieren möchte und was nicht - was im übrigen auch für die Optimierungen gilt.
Hier also der vielleicht letzte Aufruf an ATi im Namen der User: Bitte, gebt uns SSAA, ihr werdet es nicht bereuen!
Nachtrag: Eine erneute Anfrage bei Terry Makedon brachte ernüchternde Worte. SSAA-Support ist nicht vorgesehen, man wolle die vorhandenen Ressourcen lieber in weit bessere Features investieren. Was damit gemeint ist, wollte er nicht sagen. Wir sind enttäuscht und zugleich gespannt ...
Allen SuperSampling-Liebhabern können wir aber seit Kurzem eine teilweise Entschädigung empfehlen: Den DirectX Tweaker! Neben Spielereien wie einem Wireframe-Modus erlaubt dieses feine Stück Programmierkunst Dinge wie das Einfärben der verwendeten Pixel-Shader, das Loggen letzterer, Alpha-Testing-AntiAliasing sowie das von vielen ATi-Nutzern gewünschte SSAA. Letzteres ist in der aktuellen Beta-Version des Tools lediglich als 4xOG implementiert, niedrigere Stufen werden im Laufe der Zeit hinzukommen. Aufgrund der Tatsache, dass ATis derzeit erhältliche Hardware eine auf 2048x2048 Pixel beschränkte Rendertarget-Size besitzt, ist es leider nicht möglich, das SSAA in Auflösungen größer 1024x768x32 zu nutzen. Und wer sich nach nVidias qualitativ sehr hochwertigen Hybrid-Modi sehnt, der wird ebenfalls noch unbestimmte Zeit auf etwas Derartiges auf einer Radeon warten müssen. Ein Treiberproblem, über das ATi informiert ist, verhindert momentan die Implementierung solcher Modi.
Overclocking
Im Rahmen des letzten Benchmark-Updates bestätigte sich eine Beobachtung, die uns bei den ersten Durchgängen noch etwas stutzen ließ: Das Overclocking-Potenzial wird anscheinend teilweise vom Grafikkartentreiber mitbestimmt!
Um den bereits länger bestehenden Verdacht zu verifizieren, machten wir uns an eine Reihe Tests mit einem GPU-Takt von 450 MHz, denn genau mit diesem Takt fiel uns das Phänomen auf. Als Testkandidaten wurden natürlich die bereits im Vorfeld ausgiebig überprüften Anwendungen unseres Treibervergleichs an Land gezogen -- und ab hier geht das Differenzieren los. Die getesteten Spiele und Benchmarks lassen sich grob in verschiedene Techlevel einordnen:
- Direct3D nach DX7-Norm (z.B. UT2004, 3DMark2001 Tests 1-3)
- Direct3D nach DX8-Norm (z.B. Painkiller)
- Direct3D nach DX9-Norm (z.B. 3DMark05, Far Cry oder Half-Life 2)
- OpenGL auf DX7-Techlevel (z.B. Serious Sam 2nd, RtCW)
- OpenGL auf DX8-Techlevel (Call of Duty)
- OpenGL auf DX9-Techlevel (Doom 3)
An dieser Stelle sei uns verziehen, wenn das Ganze nicht 100%ig passt. Um zu zeigen, auf was wir hinaus wollen, reicht diese grobe Einteilung vollends aus.
Genau genommen interessieren bei dieser Thematik nur die Anwendungen, die ausgiebig Gebrauch von Pixel-Shading machen, ergo mindestens SM1.1. Die DX7-Programme zeigten erst bei einer noch höheren Übertaktung der GPU, dass letztere am Ende ist, während gerade die SM2.0-Anwendungen wie Far Cry, Half-Life 2 sowie der 3DMark05 und Doom 3 schon deutlich früher die berüchtigten "Schnee"-Artefakte, die jedem Overclocker bekannt sein dürften, zur Schau stellten. Doch - und das ist der Punkt - mit neueren Treibern ist mehr GPU-Takt ohne Artefakte möglich!
Beim Testen der Übertaktungseigenschaften gingen wir chronologisch vor, womit der Catalyst 3.2 als erster offizeller R350-Treiber auch als erstes seine Qualitäten auf diesem Gebiet präsentieren durfte. Das Ergebnis war ernüchternd: 450 MHz verursachten starken Schneefall auf diversen Objekten in FarCry (z.B. Waffen und Charaktere), Half-Life 2 (Wasser, und besonders im Lichtkegel der Taschenlampe) sowie bei Painkiller auf einige und dem 3DMark05 und Doom 3 auf alle Objekte verteilt. Die anderen Treiber der 3-er-Reihe taten es ihm gleich. Fazit: Für das Übertakten eher mäßig tauglich.
Weiter ging es mit den Treibern des Jahres 2004. Während die ersten Vertreter dieser Generation schon leicht vermindertes Schneegestöber zeigten, wurde es etwa ab dem Catalyst 4.5 richtig interessant: Die Artefakte reduzierten sich mit den folgenden Treibern auf ein Minimum, um schließlich mit den neuesten Treibern dieses Jahres den bisherigen Höhepunkt der Abstinenz zu markieren. Minimales bis nonexistentes Schneetreiben auf den vorher aufgefallenen Objekten wissen zu gefallen.
Die Ergebnisse verblüffen insofern, dass man weiß, dass mit den neuesten Treiber-Releases aus dem Hause ATi die Performance bei der Abarbeitung der Pixel-Shader kontinuierlich gesteigert werden konnte -- bessere Auslastung also. Und trotzdem verträgt der Grafikchip mehr Takt denn je. Wer möchte, kann uns seine Ergebnisse im Forum mitteilen, denn eine Bestätigung der gemachten Beobachtungen auf anderen Systemen würde uns brennend interessieren!
Größere Bugs
Wie der Name schon vermuten lässt, ist es an dieser Stelle an der Zeit, auf die gröbsten Bugs aufmerksam zu machen. Es gibt da ein paar Negativ-Highlights, die geradezu danach schreien, erwähnt zu werden: Bugs, die von ganz am Anfang bis zum Ende der Treiberpalette überlebten.
Auf Platz 1 der Langlebigkeits-Skala ziemlich offensichtlicher Bugs steht der gegen Ende der 3er-Catalyst-Reihe eingeführte Gamma-Bug unter OpenGL. Erkennungsmerkmal: Nach einem Auflösungswechsel und gelegentlich direkt nach dem Spielstart verdunkelt sich das Bild deutlich unter den Normalwert. Beobachtet wurde dieser Missstand bei Call of Duty und Unreal Tournament "Classic", wobei auch einige andere Spiele auf Basis dieser Engines betroffen sein dürften.
Ebenfalls schon eine halbe Ewigkeit vorhanden ist ein Bug, der zwar keineswegs den Spielfluss stört, allerdings gerade auf Grund seiner Langlebigkeit eine Menge Nerv-Potenzial besitzt. Betroffen ist Return to Castle Wolfenstein: Sobald MSAA zur Anwendung kommt, flackert der Ladebildschirm vor dem Levelstart - ohne AA ist alles in Ordnung. Apropos Flackern: In X2 gibt es keinen einzigen Treiber, der bei einigen weiter entfernten Objekten kein Texturflackern präsentiert. Man kennt dieses Artefakt noch aus Zeiten, wo 16 Bit die Standardfarbtiefe war - in Zeiten von 32 Bit sollten Probleme von in Bewegung flackernden Texturen auf Grund der ausreichenden Genauigkeit eigentlich aus der Welt geschafft worden sein.
X2 ist neben Far Cry und Painkiller einer der Fälle, bei denen es Probleme mit 6xMSAA in Kombination mit hohen Auflösungen à la 1600x1200x32 gibt. Die beiden ATi-offiziellen Treiberpanels wollen dem User zwar weismachen, dass die maximale Auflösung für aktives Anti-Aliasing bei eben dieser liegt - doch dem ist nur teilweise so. Bei den genannten Spielen gibt es bei dieser Auflösungs-Anti-Aliasing-Kombination wieder komplett ungeglättete Polygonkanten zu sehen, AA ist aus. Far Cry geht dabei konsequent vor: Kein Treiber zeigt hier AA an - Painkiller und X2 hingegen beginnen erst ab dem Catalyst 4.4 damit, sich die Rechenarbeit zu sparen. Überraschend Abhilfe schafft der neue Catalyst 5.3: 6xMSAA funktioniert erstmals in Far Cry unter 1600x1200x32 und X2 erstrahlt ebenfalls wieder in maximalem Glanz.
Letzteres ist insofern interessant, als dass sich auch Max Payne 2 ab dieser Treiberversion im negativen Sinne anders verhält: Wo alle Treiber vor ihm keinerlei Performance-Probleme beim Inkrafttreten der Post-Processing-Effekte (u.a. bei Bullet-Time) haben, zeichnen sich alle nach ihm erschienenen Kollegen durch niedrige FPS um die 20er-Marke aus. ATis Treiberabteilung scheint mit dem genannten Treiber wohl generell etwas an der Funktionalität von MSAA geändert zu haben, anders lassen sich die eben beschriebenen Phänomene eigentlich nicht erklären.
Weiterhin interessant, allerdings schon eine ganze Weile behoben ist ein Bug, der das Pixel-Shading betrifft. Die Catalysts von 3.2 bis einschließlich 3.6 sparen sich bei Far Cry und Half-Life 2 die Darstellung des auf dem Wassers befindlichen Shader, es fehlt sichtlich etwas. Diesen Fehler behebt bei beiden Spielen der Catalyst 3.7: Offenbar fand erst bei diesem Treiber eine neue Funktion ihr Zuhause, die später von den genannten Spielen als die präferierte auserkoren wurde.