ATI's explanation
Apparently, something is wrong with ATI's drivers, because the Radeon X800 Pro isn't producing the correct image in DOOM 3 at the game's defaults. There might also be something fishy going on, because performance drops after toggling the filtering mode in the game console. We contacted ATI and asked for an explanation, unsure what to expect.

ATI's answer, it turns out, was intriguing. The problem with image quality, they said, is due to a known bug in the Catalyst 4.8 and early 4.9 beta drivers. Unlike most games, they claimed, DOOM 3 doesn't turn on anisotropic texture filtering globally. Instead, it sets filtering on a per-texture basis, requesting filtering only on those textures that require it. Other textures in the game store important data that the game uses to render scenes, but don't show up on screen. These textures won't benefit from filtering. What's more, they said, DOOM 3 is rather unique among OpenGL applications in this requesting filtering on a case-by-case basis instead of doing so globally.

As a result, DOOM 3's behavior exposes a bug in ATI's OpenGL driver. The driver isn't reacting properly to DOOM 3's requests. The driver sets a minification filter, but not a magnification filter—so full trilinear blending between mip maps isn't applied. ATI pledged to get us a new build of the Catalyst 4.9 beta drivers that included a fix for the problem, and said the fix should have a negligible impact on performance.

So far, so good. Why, then, does using the console to toggle between bilinear and trilinear modes appear to solve this problem?

ATI said the performance drop is a result of a quirk of DOOM 3's. Using the console switch sets filtering globally, rather than on a texture-by-texture basis. Setting filtering globally, they said, has the same effect as forcing anisotropic filtering on in the ATI driver's control panel. Texture filtering then affects textures that shouldn't be filtered, like the game's specular lookup table and cube map textures, slowing the game down without really benefitting image quality. (Incidentally, they noted, this same problem is one of the big reasons the DOOM 3 shader patch making its way around the web improves performance so dramatically in some cases—specifically, in those cases where users have forced anisotropic filtering on using the ATI control panel. By substituting math operations for using the specular lookup map, the patch sidesteps the unnecessary filtering happening to the specular lookup texture.)

In other words, according to ATI, the big performance drop-off we're seeing after the console commands is a quirk of the game, and doesn't necessarily mean anything sinister is happening in ATI's drivers.

So are they full of it?
The explanation sounded good, but we wanted to be sure ATI wasn't trying to use its technical mojo to pull the wool over our eyes, so we had to come up with some means of verifying what they were saying. We decided on a few obvious ways of testing their claims.

  • Test the new driver — Of course, we'll have to see whether the new driver fixes the image quality problem in DOOM 3, and we'll want to check and see whether the fix results in a big performance loss. Ideally, if what ATI is saying is true, our Radeon X800 Pro test card should produce the proper image quality and still perform about like it did with the earlier Catalyst 4.9 beta drivers.

  • Test bilinear filtering — If DOOM 3's console settings really do turn on anisotropic filtering globally, we'd expect performance in DOOM 3 to suffer somewhat even if we just issued the command to switch into bilinear filtering mode, because the switch to bilinear should invoke anisotropic filtering on the specular lookup and cube maps, as ATI claimed.

  • Test control panel aniso — ATI claimed that setting anisotropic filtering plus trilinear using in DOOM 3's console command was functionally equivalent to forcing on global anisotropic filtering using the ATI control panel. We can test that claim straightforwardly by turning on 8X aniso in the control panel and running some timedemos.

  • Test NVIDIA hardware — If the console commands in DOOM 3 force global anisotropic filtering, then we should see a performance drop after issuing those same commands on a GeForce 6800 GT, right? And what happens when we turn on 8X anisotropic filtering in the NVIDIA control panel? Is the effect the same as it is on ATI hardware? Also, how does image quality before and after the console command toggle affect image quality on NVIDIA cards?

  • Use counter-mojo — We asked an NVIDIA engineer to check and see whether DOOM 3's console commands were requesting filtering for textures that don't need it, like the specular lookup map. He said he'd look into it and get back to us.
Equipped with a broad set of options, we set out to put ATI's explanations to the test.