Late last month, NVIDIA unveiled its ForceWare software suite of drivers to coincide with the release of the GeForce FX 5950 Ultra and GeForce FX 5700/FX 5700 Ultra. ForceWare is about more than just graphics though, as NVIDIA’s platform software for their nForce line also falls under the ForceWare label. Today we’re here to focus on NVIDIA’s new graphics driver, which previously went under the Detonator brand. To avoid some confusion with other software packages, we’ll just stick with the Detonator name for now. Lets get on to the driver report!
While NVIDIA’s Detonator drivers have officially supported the GeForce FX line of DX9 GPUs for the past several months, NVIDIA’s software team has still been busy catching up to the hardware. We first hinted at this in our MSI GeForce FX5900-TD128 review where we stated: “The Detonator team is definitely under more scrutiny to deliver however. After the controversy surrounding 3DMark, NVIDIA’s driver team will be under more pressure than ever to provide high performance along with the stability and compatibility NVIDIA’s drivers are traditionally known for. It won’t be an easy task, but NVIDIA’s engineers have definitely delivered hardware that is superior to what they had at the beginning of this year. It will now be up to the Detonator team to expose all of NV35’s potential power.” Sounds like a subtle statement doesn’t it? But the key phrase is “expose all of NV35’s potential power”.
Up until just recently, we couldn’t officially elaborate on that statement without getting into serious trouble with NVIDIA’s legal department. You see, the driver we used for that review, Detonator 44.03, did not take advantage of a new compiler NVIDIA has been working on. For the past year, NVIDIA has been quietly assembling a compiler team, with engineers whose roots come from the world of CPUs. The team will eventually consist of 50 people with experience ranging from AltiVec, to 3DNow! and SSE.
NVIDIA’s compiler was first implemented in Detonator 44.12, but it was still fairly rudimentary. As its name implies, NVIDIA’s Detonator 50 series takes advantage of their next generation compiler, which has been optimized for even more performance.
These optimizations take several forms. For instance, the new compiler takes standard API calls and translates them into code better suited for the NV3x architecture. This is important, as early DX9 benchmarks with 3DMark, Tomb Raider, and Half-Life 2 has shown NVIDIA’s weakness in these DX9 applications when optimizations aren’t in place. Since NVIDIA hardware tends to prefer longer shader instructions, the compiler can translate shorter pixel shader programs that require multiple passes into longer programs that require fewer passes. The compiler has also been designed to minimize register usage (a topic that has received a fair amount of discussion since ATI’s Shader Day event). NVIDIA has been working with Microsoft on a new PS_2a path that’s optimized for the NV3x architecture to help make this invisible to the end user.
In addition, the Detonator 50 driver includes a new instruction scheduler, which rearranges the order of instructions to better suit NVIDIA hardware (with different optimizations for FX 5900, FX 5600, FX 5200). This subtle change can have a huge impact on NVIDIA’s shader performance.
Finally, the new Detonator driver contains an assortment of hand-tuned shaders. Some of these are shader fragments for shader functions that are commonly used, while others are shaders that have been adapted for particular shading models.
The key sticking point to all these optimizations is increasing performance without reducing image quality. After all, the most critical aspect to new 2.0 pixel and vertex shaders are the jaw-dropping visuals they’re capable of providing. Right now there are only a handful of titles in existence that take advantage of 2.0 shaders, even titles which were just recently released such as Call of Duty (which employs some shaders despite being based on the Quake 3 engine) and Max Payne 2 still utilize 1.x shaders. So while we can show you some of the ramifications of this today, you really won’t see the entire scope of things until next year when titles that use thousands of 2.0 shaders ship.
We’re going to put this new compiler to the test in existing DX9 games such as Halo and Tomb Raider, while we’ve also included results with ShaderMark 2.0 to test theoretical performance, but first lets take a look at some of the other new features NVIDIA has incorporated into Detonator 52.16.