Op Blue's News is een .plan update te lezen van John Carmack, waarin hij zijn bevindingen over de prestaties van de twee snelste GPU's van dit moment beschrijft. Carmack is op een zeer laag niveau met deze architecturen bezig geweest voor de ontwikkeling van de Doom III-engine, en heeft er dan ook verschillende modi in zijn nieuwe speeltje gebouwd om de beste prestaties uit de verschillende architecturen te kunnen halen. Naast de generieke ARB- en ARB2-modus kent de software ook speciale getunede R200-, NV10-, NV20- en NV30-modi.
Tijdens het werk aan de nieuwe 3d-engine voor Doom III is Carmack opgehouden met het ondersteunen van alle API-uitbreidingen die door nVidia en ATi specifiek voor hun eigen kaarten zijn gedaan. In plaats van hier mee door te gaan is hij overgestapt op puur algemene ARB-functies, een beslissing die overigens ook door de hardwarebedrijven gesteund wordt. Het verschil in performance tussen R200-mode en ARB2-mode op een R300-kaart zoals de Radeon 9700 is minimaal, maar op de GeForce FX is het echter een heel ander verhaal. Carmack ontdekte dat zodra de specifieke nVidia- en NV30-functies in de code werden vervangen voor algemene functies, de performance van de kaart halveerde. Waar de GeForce FX eerst nog sneller was dan de R300, was hij zonder de optimalisaties een makkelijke prooi voor zijn grootste concurrent.
nVidia is uiteraard op de hoogte van deze situatie, en heeft Carmack verzekerd dat er nog veel ruimte voor verbetering is in de drivers. De R300 architectuur gebruikt namelijk een vaste precisie (96-bits), terwijl de NV30 drie verschillende niveaus hanteert (32, 64 of 128-bits), waarbij standaard voor de hoogste optie wordt gekozen. Dat kan dan wel positief voor de kwaliteit zijn, maar het is natuurlijk wel een flinke domper op de prestaties. De uitdaging voor de software engineers van nVidia is nu dus om de drivers zo te tunen dat de ARB-functies in de toekomst minstens even snel verwerkt zullen worden als de NV-functies, onder andere door niets steeds automatisch de maximale precisie te gebruiken. Als het bedrijf dat voor elkaar krijgt dan zou er bij alle niet specifiek geoptimaliseerde (OpenGL-)software een sterk verbeterde performance te zien moeten zijn. Of men hierin ook daadwerkelijk in zal slagen, en of de performance van DirectX-software op dezelfde manier verbeterd kan worden is niet duidelijk. De keuze voor consumenten blijft dus een lastige:
I am using an NV30 in my primary work system now, largely so I can test more of the rendering paths on one system, and because I feel Nvidia still has somewhat better driver quality (ATI continues to improve, though). For a typical consumer, I don't think the decision is at all clear cut at the moment.
For developers doing forward looking work, there is a different tradeoff -- the NV30 runs fragment programs much slower, but it has a huge maximum instruction count. I have bumped into program limits on the R300 already.
As always, better cards are coming soon.
Verderop in de .plan staat overigens nog een hoop uitleg over de ARB-functionaliteit, voor de geïnteresseerden .