Dronez Information

This content was originally featured on Amdmb.com and has been converted to PC Perspective’s website. Some color changes and flaws may appear.

Understanding benchmark modes
DroneZ uses an illumination system and bump mapping method that cannot be implemented in hardware on previous video cards.
The intention to put place advanced features in hardware is what inspired nVidia to create the nFiniteFX engine!
The GeForce 3 is the only card that can handle a custom illumination within DroneZ in hardware, and this is done through the Vertex Programs of the nFiniteFX engine.

If you run a DX8 benchmark on a GeForce 2 the system will EMULATE the nFiniteFX engine in software for the very same reason: the GeForce 2 doesn’t support Vertex Shaders in hardware.

Emulation is never as good as native code. Just try running PS2 or N64 emulators on a PC you’ll see that I mean. 
Prior to the GeForce 3 (nFiniteFX), would write for a system with GeForce 2 + Pentium III or Athlon based platform. Traditionally, the coder would put all the possible stuff on the GeForce 2 hardware and do the rest on the main CPU with optimized code for the CPU itself (e.g. using SSE optimization).

Prior to the first GeForce video card, you couldn’t do T&L in hardware on previous boards, so, what did you do? Did you compare the GeForce hardware T&L with a GeForce emulator, or with other engines using software T&L?

When, in DroneZ benchmark, you run the “GeForce 2 Bump” and “GeForce 3 Bump” configurations you get exactly the same visuals, but with different implementation of the illumination system. In the first case it’s done with the combination of the video card and CPU (Pentium, or Athlon), which all programmers always did until now. In the second case it’s done through Vertex Programs that are executed in hardware if the nFiniteFX is present (GeForce 3); otherwise they are emulated by your main CPU! Indeed the DX8 drivers and OpenGL drivers include an nFiniteFX emulator to perform Vertex Shaders/Programs emulation.
Then, what happens if you try and run the “GeForce 3 Bump” configuration on the GeForce 2 system? The same thing that happens when you run any DX8-benchmark: The nFiniteFX will be emulated! The visuals will be the same, but the speed will be much slower!

So, on a GeForce 2, we will run:

“GeForce 2 Bump”

and you’ll run state of the art code for the system

“GeForce 3 Bump”

and you’ll run the nFiniteFX software (CPU-based) emulator

The difference in frame rate between “GeForce 3 Bump” and “GeForce 2 Bump” on a GeForce 2 system is the overhead of the emulation. As you can see it would not be a fair comparison to do the test using nFiniteFX software emulator: it’s the CPU to handle the code in both cases only that in the first case its optimized code and in the second case its (slower) emulation code! This is not because the emulation code is flawed, it’s just because it’s an emulation of something else: something else that your CPU is not!
On the other hand, on a GeForce 3 we will also run:

“GeForce 2 Bump”

and you’ll leave the nFiniteFX engine unused: this way you will be testing what the GeForce 3 brings to older games (like Quake 3).

“GeForce 3 Bump”

and you’ll unleash the power of the nFiniteFX engine

“GeForce 3 Bump HQ”

you will also use Texture Shaders: they are slightly slower, but provide an even better quality!

About resolution

if you run the benchmarks at hi-res, like 1600×1200, you are fillrate-bound: this means that you are using most of the time drawing pixels rather than performing geometric calculations. This is interesting, but it’s not a really good test to measure the actual power of the nFiniteFX engine: in fact, you would get more or less the same results as running a game that doesn’t use Vertex Programs, like Quake3.

The same issue occurs if you are running at a lower resolution, but you are using FSAA.
If you run the benchmarks at a lower resolution (e.g. 1024×768 without FSAA) you will be geometry-bound and you will clearly see how the nFiniteFX engine is powerful compared to any software implementation, even if it’s the best possible optimized code for PIII + GeForce 2.

Putting this logic to extreme consequences, if you run at a very low resolution you get an ideal measure of the power of the nFiniteFX engine compared to the GeForce 2 system by running:

“GeForce 2 Bump”

at 640×480 on the GeForce 2 Ultra

“GeForce 3 Bump”

at 640×480 on the GeForce 3 Ultra

At this resolution you can also run both configurations on the GeForce 2 and you will really understand how slower the emulation is when compared to the optimized, native CPU code. Again: the emulation is always executed on the CPU; you are just comparing emulation code to optimized code!

Eventually (running at low resolution) we saw how to:

    • Compare old technology at its best to new technology at its best:
      Running “GeForce 3 Bump” on the GeForce 3 and “GeForce 2 Bump” on the GeForce 2
    • Evaluate the advantage of the nFiniteFX engine vs. optimal code:
      Running “GeForce 3 Bump” and “GeForce 2 Bump” on the GeForce 3
    • Evaluate the overhead of the emulation vs. optimal code:
      Running “GeForce 3 Bump” and “GeForce 2 Bump” on the GeForce 2

The “GeForce 3 Bump HQ” uses Texture Shaders, so it is not compatible with previous hardware.

« PreviousNext »