Diamond Viper V770 Ultra Review
This page is an overview of the benchmark tests and includes system configuration, driver and overclocking information, benchmark specific configurations, and interpreting the benchmark results in this review.
The Viper V550 benchmark results are based on the following set of drivers:
Note: The Quake 2 and Kingpin benchmark results for the Viper V550 at 1600x1200 in 32-bit color are estimates as they failed to run.  The estimates are based on the their corresponding 16-bit results, which ran correctly, plus factoring the performance loss of running in 32-bit color.
- GL Quake - Diamond version 4.10.01.0239
- Quake 2 - Diamond version 4.10.01.0255
- Quake 3 Test, Kingpin, Turok2, and Expendable - NVIDIA Detonator 1.15 - Microsoft WHQL Certified
The Test System:
Operating System, Drivers, and Utilities:
- Intel Pentium II-450MHz
- 128 MB Hitachi PC100 SDRAM
- Abit BH6 440BX Motherboard
- Diamond Viper V550 AGP
- Diamond Viper V770 Ultra AGP
- Hitachi Superscan Supreme 752 19-inch monitor
- Seagate Medalst Pro 6.4GB 7200RPM HDD
- Addtronics 6890A full tower case with 300w PSU
- Windows 98 with DirectX 6.1
- Viper V770 Ultra - NVIDIA version 4.11.01.0188
- Powerstrip version 2.50.01
- GL Quake version 0.97
- Quake 2 version 3.20
- Quake 3 test version 1.06
- Kingpin alpha demo version 0.22N
- Turok 2 demo version 1.01
- Expendable demo version 1.0
Drivers And Overclocking
The V770 Ultra comes with an overclocking utility, called the Turbo Gauge, which is a part of Diamonds InControl Tools 99.  Due to time constraints, I was unable to review the InControl Tools 99 software.  Fortunately, Riva 3D has written an article on the InControl Tools 99 features as part of their review.
Since the benchmarks for the Viper V770 Ultra were run using the NVIDIA reference drivers, I used Powerstrip to overclock the V770 Ultra.
Each benchmark was run twice and the highest result used.  Both VSYNC and sound were disabled for all benchmarks.  The following is a list of settings used for each benchmark:
GL Quake: The following batch file command line was used to benchmark GL Quake:
glquake.exe -width ### -height ### -bpp 16 -heapsize 36000 -nosound -nojoy -nocdaudio -noipx +gl_finish 0 +gl_flashblend 1 +gl_keeptjunctions 0 +gl_polyblend 1 +gl_texturemode GL_LINEAR_MIPMAP_NEAREST +gl_ztrick 1 +r_mirroralpha 1 +r_novis 0 +r_shadows 0 +r_wateralpha 1 +viewsize 120 +stopdemo +timedemo demo1
Quake 2 - Default configuration, texture quality - high (slider to the right), 8-bit textures - yes, sync to every frame - no
Quake 3 Test - Details on benchmark page
Kingpin: Viewsize 100, 8-bit text - no, sync to every frame - no
Bigass config: Default configuration, plus: fog - on, shadows - on, pain skins - full (slider to the right), props - on (props "1"), texture quality - high (slider to the right)
Turok 2 - bilinear and trilinear filtering results plus: normal detail, fog, fancy sky, tint fullscreen, render overlap
Expendable - normal detail, hardware antialiasting, stencil buffering, bilinear filtering, lensflare effects, corona effects, projected shadows, frame locking off, video texturing on, bumpmapping on
Interpreting The Benchmark Results
Each benchmark result is presented with a bar chart.  The X coordinate indicates frames per second and the Y coordinate is the resolution the benchmark was run in.  The bar chart consists of a green, yellow, and red bar.
There is also a benchmark conclusion page which has charts showing the percentage of frames per second increase of the Viper V770 Ultra over the V550.
Green bar - results from the Viper V550 running at its default clock speed (90MHz core/110Mhz memory)
Yellow bar - results from the V770 Ultra running at its default clock speed (150Mhz/183MHz)
Red bar - results from the V770 Ultra overclocked to 175MHz/200MHz
I was concerned that the benchmark results for the Viper V550 could have increased using NVIDIA's 1.88 reference since I had previously benchmarked the Viper V550 with other drivers.  I reinstalled the Viper V550 on my PC and ran a series of Quake 2 benchmarks with both types of multitexturing enabled (see Nick Triantos' message below) using the 1.88 drivers.  The results were lower than those obtained from the original benchmarks and therefore, am using the original results to represent the performance of the Viper V550.
For additional information on multitexturing with the 1.88 reference drivers, I've included this message by NVIDIA's Nick Triantos:
Finally, it's about time we got to the benchmarks...
There's two multitexture extensions.  One's called ARB_multitexture, and that's the one that everyone's going to be using and supporting.  There's also one called SGIS_multitexure that id used as a stopgap to enable multitexturing on early GL implementations.  We implemented it, but we found that on certain Quake2 resolutions and depths, it actually hurts performance in our driver, because Quake2 does not use one of their optimizations when they use multitexturing.  So, we've made our default case be to turn it on only for the resolutions and depths where on a reasonably current system it yields better performance.
We plan to remove support for this old SGIS extension entirely, if id releases a patch to Quake2 to let it use ARB_multitexture.  There's nothing sneaky, and there's not a bug.  We chose to hide support for that extension at resolutions where it hurt the end user experience (i.e. performance) in the most prevalent app that uses it (Quake2).  Most other games have switched to the ARB version of the extension already, and we encourage those who haven't yet to do it.  If you want to force multitexturing to always be enabled, you can set the key:
\\HKEY_LOCAL_MACHINE\Software\NVIDIA Corporation\RIVA TNT\OpenGL\ForceMultiTexture (type DWORD) to the value 1.
Next: GLQuake Benchmarks