Da es sich mitttlerweile zu bestätigen scheint, kann ein kleiner Kommentar hier nicht schaden.
Die Modifikation, die Humus an einem Doom3-Shader vorgenommen hat, brachte brachial Leistung - allerdings nicht, weil Doom3 nun vollständig auf nVidia optimiert ist, oder weil JC gepennt hat, sondern weil offenbar viele Leute den anisotropen Filter über das Control Panel erzwungen hatten.
Doom3 ist hier aber ein wenig schlauer als die meisten Treiberprogrammierer und so wurde bei Treiber-AF auch der
dependant read aus der LookUp-Table/Texture voll anisotrop gefilert. Und das für jedes beleuchtete Pixel einmal pro Lichtquelle.
Man kann sich leicht vorstellen, welch enorme Zusatzarbeit da auf einen Grafikchip zukommt - nicht umsonst hieß es schon in den ersten Doom3-Tuning Guides "Never ever stell' your AF über den Treiber ein, but instead lass lieber Doom3 das machen".
Doom3-AF, das über das consolenkommando
image_anisotropy x (wobei x=1 für trilineares Filtern und 2,4,8 und 16 für die AF-Stufen stehen) aktiviert, nutzt AF nur auf Texturen, wo man einen Unterschied sieht - bei der specular map ist das nicht der Fall.
Ergo ist einleuchtend, daß der Verzicht auf wahnwitzig viele verschwendete anisotrop gefilterte Textursamples und das Inkaufnehmen von ein paar zusätzlichen Rechenanweisungen im Pixelshader deutliche Performancevorteile verspricht - aber eben nur, wenn man zuvor jegliche Optimierungsrichtlinie in den Wind schlug.
Das
Texture Cache Trashing, welches Humus als Grund ausgemacht haben wollte, beträgt in Wirklichkeit also nur 1-2% der Gesamtleistung, wie hier im Artikel auch erbencht.