Versteckspiele bei ATis Texturfilter: Was ColorMipMaps nicht enthüllen

 4/5
Carsten Spille
95 Kommentare

Differenzbilder

Auf diese Weise alarmiert, versuchten wir herauszubekommen, wie die R420 hier solcherlei Performance-Vorteile erreichen konnte - offenbarten bislang doch die optischen Vergleiche eingefärbter Mip-Level ordentliche trilineare Filterung. Um ehrlich zu sein, setzte erst an diesem Punkt unsere Suche nach alternativen Erklärungsmöglichkeiten an, das Ergebnis haben wir jedoch zwei Seiten zuvor bereits vorweggenommen.

Bei den Bildern handelt es sich um verlustfrei komprimierte PNG-Dateien, die mit jeweils knapp 1,3 MB zu Buche schlagen

Bei diesen Shots, links die R9800 XT, rechts die X800 Pro, handelt es sich um Original-Screenshots aus der Cheat-Demo für UT2003 in 1024x768x32 mit jeweils 4xAA und über das rTool erzwungenem, bisher als „Full-Tri“ angesehenem, anisotropen Filter. Diese Bilder wiesen an einigen Stellen (bsw. Marmorkacheln im Vordergrund und die Felsunterseite im Hintergrund) leichte Unterschiede auf.

Mittels einer Differenzmethode, bei der wir bit-genau mit einem selbstgeschriebenen Tool von Ralf Kornmann die Farbwerte überprüften, haben wir nun bei den jeweiligen Chips die Pixel schwarz einfärben lassen, die auf beiden Bildern gleich sind.

R9800 XT Bilinear-AF-vs-Full-Trilinear-AF
R9800 XT Bilinear-AF-vs-Full-Trilinear-AF

Bei einem echten trilinearen Filter darf der identische Bildbereich nur sehr klein sein (immer dort wo aufgrund des LOD die zweite Mipmap mit 0% eingeht), wie man in den bekannten AF-Testern an den schmalen, vollfarbigen Streifen bei trilinearer Filterung sieht. So zeigt auch die Radeon 9800 XT hier einwandfreie Filterung im Rahmen ihrer technischen Möglichkeiten.

Links die X800 Pro und rechts die Radeon 9600 XT

Da wir aufgrund der messbaren und sichtbaren Veränderung der AF-Füllrate beim Erzwingen von „Full-Tri“ AF über das rTool davon ausgehen mussten, dass es sich hier nicht mehr um eine Texturstage-Optimierung handelt, die nur auf der ersten Texturschicht trilineares AF appliziert und auf allen weiteren sieben auf bilineares AF zurückfällt, haben wir nach Anzeichen einer Reduzierung des trilinearen Anteils an der Texturfilterung gesucht. Ein sogenannter „brilinearer Filter“ zeichnet sich dadurch aus, dass dort, wo das Bri-Band wirkt, das Bild genau identisch mit dem reinen bilinear-gefilterten Bild sein muss. Bei einem reduziert-trilinearen Filter nimmt der identische Bereich auf den Differenzbildern im Vergleich zu echter trilinearer Filterung aber mit der Stärke der Optimierung zu.

Rein der Vollständigkeit halber haben wir hier noch einmal den Vergleich zur Radeon 9600 XT gezogen, die ebenfalls über eine trilineare Optimierung verfügt. Diese scheint aufgrund des breiteren identischen Bandes sogar noch stärker zu sein, als die der Radeon X800 Pro.

Das Ergebnis scheint eindeutig: Sobald man sowohl der Radeon X800 als auch der Radeon 9600 XT nicht genau auf die Finger schaut, sprich, mit Hilfe eingefärbter Mip-Level die angewandte Filterung überprüft, wirkt eine Optimierung der trilinearen Filterung, die besonders in Kombination mit der Textur-Stage-Optimierung des AF enorm an Füllrate spart.