Optimization Wars: What about the Image Quality?
It is not a secret that NVIDIA and ATI resort to certain software tricks to boost the performance of their products. For example, they simplify tri-linear and anisotropic filtering, reduce the precision of pixel shaders and do some other things, often resulting in a certain loss of quality as concerns the rendering of a 3D scene.
Of course, we are past those sensational scandals around 3DMark, and the companies behave much more discreetly nowadays. There are situations when the optimizations are overt, but in most cases they are barely noticeable during the game process – only a close scrutiny reveals certain differences. Quite naturally, the player doesn’t look for any traces of those optimizations but keeps track of the gameplay in order not to see that awful Game Over screen much too soon.
Anyway, this optimization problem remains urgent even today, only its wording has changed. Now the question is “Should the user be allowed to control the optimizations?” The two leading graphics companies answer this question in a diametrically opposite manner, like two good old fatal enemies. NVIDIA says yes and offers the option of disabling the optimizations in the latest versions of its driver, whereas ATI thinks it senseless to provide such options. Quoting the representatives of the Canadian company, disabling the texture filtering optimizations in its newest products leads to nothing but performance degeneration since even the most fastidious user wouldn’t notice any image quality improvements without those optimizations – so negligible they are! We can’t deny some truth in this statement but this is rather a question of the respect towards the end-user – from this point of view, NVIDIA’s approach is friendlier.
We decided to check out for ourselves if the optimizations were really as negligible as ATI and NVIDIA would make us think, and made a few screenshots in several modern games. We think this approach is better than the use of any test programs that output artificial scenes with and without highlighting of mip-levels, which is only indicative of the presence or absence of optimizations (and only when the optimizations are not automatically disabled on turning the highlighting on), but cannot say how much the overall rendering quality degenerated. Besides that, the purchaser of a gaming graphics card doesn’t buy it to enjoy the look of a simple checkerboard texture or the patterns of the highlighted mip-levels, but does it to just play games!
And it is the real games that we should turn to and search for any defects in the image. We took several technologically advanced games as examples. They are:
- Far Cry;
- Max Payne 2: The Fall of Max Payne;
- Halo: Combat Evolved.
We made the screenshots in the 1280x1024 resolution and in the “eye-candy” mode (it means that we had enabled the maximum available anisotropy level as well as 4x full-screen antialiasing). The only exception was Halo, which didn’t support FSAA due to its method of rendering the scene. Every screenshot was taken two times, with enabled texture filtering optimizations and without them, on the following four graphics cards:
- NVIDIA GeForce 6800 Ultra;
- NVIDIA GeForce FX 5950 Ultra;
- ATI RADEON X800 XT;
- ATI RADEON 9800 XT.
As you know, ATI’s current drivers do not allow you to control the optimizations in the driver’s control panel – they are always enabled. Especially for those of you who are interested in the opportunity of turning off the optimizations on RADEON-family cards, we offer the following instructions:
- Search the registry for the AnisoDegree string variable.
- Correlate its value with the settings in ATI’s Control Panel.
- Change the anisotropy level in ATI’s Control Panel;
- Press F5 in RegEdit to see if the value of AnisoDegree has changed.
- If yes then go to the next item else continue searching for the necessary branch.
- Add a new string variable “RV350TRPER” and give it a value of 1.
- Add a new string variable “RV350ANTHRESH” and give it a value of 1.
- Add a new string variable “R420AnisoLOD” and give it a value of 2.
- Reboot the computer.
We used the screenshots made on the GeForce 6800 Ultra in the High Quality mode as the etalon. In this mode, all the optimizations are disabled on the card.