Zum 3DCenter Forum
Inhalt




Inside ATIs R420

4. Mai 2004 / von aths / Seite 2 von 4


   Verbesserte Pixelshader

Weil die Pixelshader 3.0-Spezifikation einen minimalen Instruction Count von 512 vorsieht, ist jeder Pixelshader 2.X auf maximal 512 Instruktionen begrenzt. (3.0 beinhaltet alle "Caps" von 2.X, das ist warum 2.X nicht die 3.0-Minimalanforderung überschreiten darf.) R420 hat mehr anzubieten: Bis 512 Textur-Operationen sowie bis zu 512 arithmetische Instruktionen. (R360 beherrscht pro Pixelshader 32 tex und 64 math.) ATI zählt nun Vektor3- und Skalar-Instruktionen einzeln und kommt mit den Textur-Operationen zu 3 * 512 = 1536 Befehlen. Wie bereits gesagt, limitiert DirectX9 dieses auf 512 Instruktionen (wobei jeder Befehl noch Modifier haben kann.)

Die Zahl der temporären Register wurde von 12 auf 32 erhöht. Dies ist übrigens der einzige Vorteil gegenüber Nvidias originaler CineFX-Engine (die 22 temporäre Register bietet.) Mehr Temps heißt, größere Blöcke von Textursamplings zu ermöglichen, was angesichts von maximal vier Dependent Read Ebenen recht nützlich ist. (Als solche Ebene zählt der Wechsel von Textur-Operationen zu arithmetischen Instruktionen. Bei GeForce ab FX darf beliebig oft gewechselt werden.) Die Sache ist eigentlich noch etwas komplizierter, denn auf bestimmter Hardware sollte eine gewisse Zahl von genutzten Temps nicht überschritten werden auch wenn die Spec das noch erlaubt. Aber halten wir fest: Die DirectX9-Leistung vom R420 ist natürlich sehr gut.

Man verwechsle bitte Shader-Zielprofile nicht mit Shader-Versionen. Mit Version 9.0c stehen vier DirectX9 Pixelshader-Profile für Hardware-beschleunigtes Rendering zu Verfügung: 2_0 (für Radeon 9500 - 9800), 2_A (für jede GeForce FX), 2_B (für Radeon X800) und 3_0 (für GeForce 6800.) Jede Pixelshader-Hardware mit irgendeiner Erweiterung gegenüber der 2.0-Minimalanforderung wird als Version 2.x behandelt, sofern die Hardware nicht schon die 3.0-Spec erfüllt. Mit anderen Worten, sowohl die R420- als auch die NV30-Pixelshaderversion ist 2.x, wobei das NV30-Featureset letztlich deutlich fortschrittlicher als beim R420 ist.

Im Moment braucht man sich als Spieler keinen Kopf um Shader Modell 3.0 zu machen. Natürlich sind viele Entwickler wild darauf, mit diesem Shader Modell schon heute zu experimentieren, aber die mit 2.0 möglichen Effekte sind heutzutage noch nicht im entferntesten ausgeschöpft. Bedenkt man die große installierte 2.0 Hardwarebasis, so wird sich die nächste Spiele-Generation auf diese Spezifikation stützen, und zusätzliche SM 3.0-Unterstützung höchstens als Zuckerle einbauen.


   Andere Erweiterungen

Der F-Buffer wurde verbessert, seine Größe kann nun dynamisch eingestellt werden. Das muss der Treiber unterstützen, aber im Gegensatz zum "temporal" AA-Feature mussten hier auch in der Hardware Änderungen vorgenommen werden.

Das HyperZ-Subsystem (was nun HyperZ HD heißt) arbeitet ein wenig effizienter als die bisherigen Revisionen. Wichtiger ist aber, dass dass nun alle HyperZ-Features auch dann noch verfügbar sind, wenn einige Quads deaktiviert wurden. (In diesem Zusammenhang ist ein "Quad" eine Baugruppe aus jeweils vier Pipelines.) Die Performance vom RV360 (Radeon 9600) wäre etwa 10% besser, wenn HyperZ dort komplett funktionieren würde, wie es HyperZ HD nun kann. Denkbare zukünftige Chips die auf den Einstiegs- oder Mainstream-Markt abzielen (mit 4 oder 8 Pipes) können von der vollen HyperZ-Effizienz profitieren, was die Leistung verglichen mit dem RV360 erhöht.

In näherer Zukunft wird es zwei Versionen der X800 geben: X800 Pro mit 12 Pixelshader und 6 Vertexshader Pipelines, und die X800 XT mit 16 Pixelshader- und ebenfalls 6 Vertexshader-Pipes. Dabei handelt es sich eigentlich um den gleichen Chip. Die XT-Version darf keinen Fehler haben und muss höhere Taktfrequenzen aushalten, während die Pro entweder ein voll funktionsfähiger Chip mit geringerer Maximalfrequenz sein kann, oder eben eine einzelne defekte Quad-Pipe haben darf. So kann ATI mehr Chips nutzen (anstatt nur jene zu nehmen, welche den Ansprüchen der XT genügen) und der Nutzer hat die Wahl zwischen sehr guter Performance für den kleineren Preis, oder maximaler Performance zum Highend-Preis. Nvidias Strategie ist die gleiche, was zeigt, dass beide IHVs versuchen ihre Ausbeute zu steigern.

Während Nvidia dedizierte Logik für Video-Kodierung und Dekodierung nutzt, kann ATI nur die Pixelshader einsetzen um die erforderlichen Rechnungen auszuführen. Da Nvidia einen voll Hardware-beschleunigten Video-Codec vermeldet hat (was mit aktuellen Treibern noch nicht in Gänze arbeitet), hat ATI dieses Feature ebenfalls angekündigt.. ATI ist bekannt, bestimmte Video-Features so anzukündigen als würden sie automatisch wirken, wobei sie tatsächlich von proprietärer Software-Unterstützung abhängig sind. Wieder einmal müssen wir abwarten und werden dann sehen.


   Was geblieben ist

R420 hat die Version 2.0-Vertexshader vom R300, aber mehr davon (6 statt 4, zusammen mit dem gesteigerten Takt wurde die Vertex-Leistung etwa verdoppelt.) Auch die Anisotrope Filterung blieb gegenüber R300 unverändert. Das ist, natürlich, schade. Wenn auch das AF beim R300 eine Verbesserung gegenüber R200 darstellt (auf dem R200 führt AF dazu, dass bestimmte Aspekte der Bildqualität mehr leiden als wenn man AF weglässt) ist sie doch weit von der bestmöglichen Qualitätssteigerung entfernt. Auf solche Kompromisse werden wir in einer zukünftigen Kolumne noch genauer eingehen.

Was Antialiasing angeht, sind alle bekannten Modi zurück, ohne zusätzliche Option auf 8x. Da ATIs 6x AA bessere Kantenauflösung hat, als Nvidia mit 8xS bietet, handelt es sich aber um keinen echten Nachteil. (8xS führt außerdem zu massiven Performance-Einbußen, wogegen 6x auf aktuellen Radeons eine Option ist, die man in vielen Games gerne zuschalten kann. Auf der anderen Seite bringt Nvidia mit 8xS gerade durch den hohen Supersampling-Anteil bestimmte Vorteile, die man bei Radeon-Karten vermisst.) 6x AA bietet eine sehr gute Glättung von Polygonkanten. Weiterhin wird so genanntes Gamma-korrektes Downfiltering mit einem fixen Gammawert von 2,2 genutzt. Das verbessert in der Regel die sichtbare Reduzierung von Treppen, wobei es in einigen Fällen die Aliasing-Artefakte aber auch verstärken kann. Einstellbares Gamma für das Downfiltering würde das Problem lösen, aber auch zusätzliche Transistoren kosten (weshalb es der Chip nicht bietet.)

"Centroid sampling" löst bestimmte Probleme im Zusammenhang mit Multisampling AA. Dieses Feature wird vom Pixelshader 3.0 erfordert. (Was etwas seltsam ist, da Centroid Sampling mit den eigentlichen Pixelshader-Rechnungen nichts zu tun hat. Es handelt sich um eine Vorschrift, wie Texturen an Polygon-Rändern gesampelt werden.) Da "Centroid sampling" schon seit R300 verfügbar ist, wird mit DirectX 9.0c dieses Feature auch für Shader Modell 2-Hardware freigeschaltet.






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

Shortcuts
nach oben