Section 1: Performance & Benchmarking
Performance and Benchmarking Tips
Tip 1: Force the application to not wait on Vsync on buffer swaps. To turn off waiting for Vsync on buffer swaps, right click on desktop to bring up display properties and click on the 3Dfx Voodoo2 Tab. At the bottom of the Voodoo2 properties page, click the button that says "Advanced." This will open the Advanced Properties page. Click on the top two check boxes to disable Vsync in both Glide and D3D games. This can also be accomplished for Glide games by setting the environment variable FX_GLIDE_SWAPINTERVAL=0. While significantly improving performance, not waiting on Vsync may cause visual “tearing” artifacts.
Tip 2: If you don't like the tearing associated with not waiting for Vsync, you can force triple buffering by setting FX_GLIDE_ALLOC_COLOR=3. This will force triple color buffering. This may cause problems for games which do "dirty rectangle" updates and other 2D operations. Future releases of the Voodoo2 control panel applet will contain a check box for forcing triple color buffering.
Tip 3: If you don't like the tearing associated with not waiting for Vsync, increase your monitor vertical refresh rate. For example, to set the refresh rate for 75Hz @ 640x480 right click on desktop to bring up display properties and click on the 3Dfx Voodoo2 Tab. Use the Refresh Rate bar under the Resolution bar in the lower left to set the desired frequency. Note that for every setting on the Resolution bar, there is a corresponding refresh rate setting, so please make note as to which resolution you are setting to the desired refresh rate.
Tip 4: For the highest possible frame rate performance, use Tip 1 to force not waiting on Vsync for buffer swaps, force 60 Hz monitor refresh rate using the instructions outlined in Tip 3, and run the game in the lowest acceptable display resolution.
Tip 5: For the best possible performance with the best visual quality, use the combination of both Tips 2 and 3 above, and run the game in the lowest acceptable display resolution.
Tip 6: Make sure the application is running in RAM and not paging from disk.
Tip 7: Disable any background applications (as much as possible) to provide the CPU with as many free cycles as possible to drive the game and the graphics.
Tip 8: Disable sound (We know, games need sound, but if you are measuring graphics performance you typically want to devote as much of the CPU to driving the graphics hardware as possible; sound can chew up 10% of the CPU or more). For example, you can disable sound in glQuake with command line options (e.g. run with –nosound and –nocdaudio) and in Quake II in the Options page.
Tip 9: Use the latest version of the game. Many games have recently released versions, or patches that enable better performance on Voodoo2.
Tip 10: Some games are more CPU limited than graphics limited. In these games increasing your resolution often will result in little drop in frame rate. (even though the fill rate requirements have increased 1.6 or more..) For example:
640x480=307200 pixels
800x600=480000 pixels (1.6x fill rate required)
1024x768=786432 pixels (1.6x fill rate over 800x600, and 2.6x fill
rate over 640x480)
Quake, Quake II, and other Quake engine games Benchmarking Tips and Examples
GlQuake: Drivers & Patches
The Voodoo2 driver file is OpenGL32.DLL and it belongs in the root
directory of your Quake directory. The version should be 1.1 or later.
Voodoo2 also has 2 texture mapping units which allows for faster texturing
and filtering of scenes within games that support them. In order
to take advantage of having multiple texture mapping units, you must download
the latest glQuake.exe that supports this functionality. This patch
can be found at id software’s ftp site: ftp.idsoftware.com, or from many
of the other Quake/glQuake sites on the net.
GlQuake: Running Timedemo
1. Run glQuake.exe
2. After startup hit the "~" key. This will bring down the console.
3. Type "map" and hit <Enter>.
4. Type "timedemo demo1" and hit <Enter>.
5. After the timed demo finishes, it will give a total frames-per-second
(fps) at the bottom of the screen. Record this number.
Quake II: Drivers & Patches
The Voodoo2 driver file is 3dfxgl.dll and it belongs in the root
directory of your Quake II directory. The version should be 1.1 or
later. Quake II has update 3.13 available at this time. Run this
update executable after installing Quake II. This file can be found
at id software’s ftp site: ftp.idsoftware.com, or from many of the other
Quake II sites on the net.
Quake II: Running Timedemo
1. Run Quake II.exe
2. Hit <ESC> to open the start menu. Use the Down Arrow
key to the "Video" page.
3. Use the Left Arrow key to select the 3Dfx OpenGL driver. Hit
<Enter>.
4. Use the Down Arrow key to select the “Video Mode.” Use
the Arrow keys to select 640x480. Hit <Enter>.
5. When done, hit the "~" key. This will bring down the console.
6. Type "timedemo 1" and hit <Enter>.
7. Type "demomap demo1.dm2" and hit <Enter>.
8. After the timed demo finishes, it will give a total fps at the
bottom of the screen. Record this number.
Following this guide we generate the following with a single Voodoo2 card (12MB) at 640 x 480 resolution.
P5/200MMX glQuake: 93 fps
P5/200MMX Quake II: 36 fps
P2/300 glQuake: 120 fps
P2/300 Quake II: 67 fps
Voodoo2 SLI on “Low End” Systems
On lower end machines some games (like Quake II) are CPU/host limited. This means the bottleneck for frame rate is not (or is less than) the graphics hardware, but is more a CPU/host performance issue. Essentially you have graphics hardware that is capable of running much faster, but a CPU that is incapable of driving it at those speeds.
Scanline interleaving (using 2 Voodoo2 boards in parallel, also known as “SLI”) does provide you twice the peak graphics fill rate, but on most lower end machines Voodoo2 in a single board may not be fill rate limited. What SLI will get you on lower end machines that are host/CPU limited is two things: higher resolutions (1024x768 w/z-buffer in games like Quake II) and increased performance at those higher resolutions.
Increasing the resolution has a direct impact on the required fill rate in the graphics hardware.
640x480 -> 800x600 = ~1.6x the fill rate required
800x600 -> 1024x768 = ~1.6x the fill rate required
640x480 -> 1024x768 = ~2.5x the fill rate required
So, if the game was 100% fill rate limited (i.e. the game was limited by the performance of your graphics adapter) increasing the resolution from 640x480 to 1024x768 would reduce your frame rate by a factor of ~2.5. (e.g. if you were getting 30 fps @ 640 x 480 and cranked it up to 1024x768, and you were purely fill rate limited, your frame rate would drop to about 12 fps)
In most cases SLI frame rates remain relatively constant regardless of resolution on lower end machines since the graphics hardware has the fill rate to increase resolution without impacting frame rates, and the CPU or host tends to me more of the bottleneck for increased frame rates. Here is one user's (Jim Kosinsky) example of this:
Creative Labs Voodoo2 (12MB SLI) running Quake II on a Micron Millennia
P200MMX, 80MB EDO DRAM:
1024x768 800x600 640x480
Demo1.dm2 38.2
39.0 38.5
Demo2.dm2 36.1
36.2 36.0
As this demonstrates, increasing fill rate over 2.5x had virtually no impact on frame rate in this case.
Your mileage may vary, but in general, lower end machines will not see tremendous increases in frame rates on all games. Some games will show substantial increases in performance (e.g. glQuake), some will show less (e.g. Quake II), but virtually all games should be able to run at higher resolutions (if the game supports it) without significant loss in frame rates.
When we built Voodoo2, we were shooting way out there for performance scalability, and just as with Voodoo Graphics, faster computers will be required to demonstrate performance anywhere near the limits of the graphics hardware. For example, Voodoo Graphics continued to get faster from 486's to Pentium's to Pentium2's - and in many cases is still getting faster. We expect a similar trend to continue with regards to Voodoo2.
Keep in mind that Voodoo2 is still the fastest 3D accelerator available for any platform, but for those users that wish to see significant performance increases in terms of frames per second, we recommend a Pentium2 platform.
Section 2: General Voodoo2 Support
What about “old” Voodoo Graphics environment variables?
Don't worry about the old environment variables, as all the Voodoo2
environment variables are now prefaced with "sstv2_". Old Voodoo
Graphics environment variables will have no affect on Voodoo2 functionality.
Multiple versions of Glide
Many applications install copies of the glide2x.dll locally in
the same directory as the game executable. Voodoo2 requires Glide
version 2.5 or later, so many of these applications that have other (older)
copies of Glide in the game executable directory will attempt to use the
older version of Glide and fail. One way to check and see if there
are stray Glide DLLs hanging around is to do something like "c:>dir /s
glide*.DLL" from a dos command line and remove all extra glide DLL's, or
rename them to something like glide2x.old. 3Dfx suggests doing this
for all disks and partitions in the system. That way, the application
will default to using the new, Glide 2.5 in the \windows\system directory.
You can also use the “Find “command from the Windows Start menu to accomplish
the same task of finding old versions of Glide DLLs.
Installing SLI
After installing a Scanline Interleave (SLI) board set, you may
only see black screens (or black screens with occasional horizontal streaks)
on your monitor when Voodoo2 is activated. The solution to this problem
is to switch which Voodoo2 board your monitor is connected to (also move
the pass-thru cable from your 2D card to the same Voodoo2 board that is
connected to your monitor).
The way the Voodoo2 initialization code currently works is the first board the 3Dfx PCI library finds is setup to be the video/monitor "Master." The other board in the SLI set is setup to be the video/monitor "Slave," and will not generate valid video output. The difficulty is that there is no way by looking at your system to determine which board will be found first by the PCI library (in some systems, it's the board closest to the CPU -- in other systems, it's the board furthest from the CPU). So, for early releases of the Voodoo2 drivers, you may have to manually swap which board is connected to the monitor for proper SLI functionality.
In future software releases, the initialization code will dynamically detect which board in the SLI set is connected to a monitor and will do the correct initialization sequence (always setting the "Master" board to be the one with a monitor attached), thus eliminating having to manually change the monitor connection.
Voodoo Graphics/Voodoo2 transitional environment variables
Older Voodoo Graphics-specific games based on Glide versions 2.1
or below are not officially supported to be able run on Voodoo2.
However, many of these games will run properly with the following environment
variables set:
set SST_GRXCLK=90
set SST_FT_CLK_DEL=0x4
set SST_TF0_CLK_DEL=0x6
set SST_TF1_CLK_DEL=0x6
set SST_VIN_CLKDEL=0x1
set SST_VOUT_CLKDEL=0x0
set SST_TMUMEM_SIZE=2
Section 3: Game Specific Support
Class 1: Latest Game Version Required
This class of failure is a result of attempting to run old versions
of games on Voodoo2. Games in this category already have patches
available by the publishers which allow proper operation on Voodoo2 boards.
Myth: Requires the latest 1.2 update. This is available from ftp.bungie.com
Uprising: Requires latest 1.05 update. This is available from http://www.3do.com/uprising/uppatch.htm.
Class 2: Failure to detect Voodoo2
This class of failure is a result of games attempting to search
specifically for Voodoo Graphics or Voodoo Rush boards during installation.
The mechanism used by these applications needs to be updated to be able
to find Voodoo2 boards. This class of failure is typically a very
simple fix for the application developer.
Electronic Arts Games: Many EA games fail to detect Voodoo2 boards. This is due to Electronic Arts’ detection scheme for graphics hardware. 3Dfx and Electronic Arts are aware of the issue and are working on a solution.
Joint Strike Fighter: 3Dfx is working with the publisher to resolve this isssue.
Need for Speed 2 SE: Copy the nfs2sea.exe file from the root directory of the NFS 2 SE CD-ROM to the NFS2SE directory on your hard drive. You can also download and install the latest patch, which works just fine, as it contains its own copy of the nfs2sea.exe file. In fact, if you run into any problems with NFS 2 SE, try installing the patch anyway. It's available at http://web.singnet.com.sg/~xibin/nfs2se-patch.zip
Class 3: Old Glide Version Installed by the Game
This class of failure is an application that installs an older
version of Glide (essentially anything prior to version 2.5 as required
for Voodoo2). These applications need to have the older version of
the glide2x.dll renamed to something else, or deleted, so the application
can make use of the glide2x.dll in the \windows\system directory.
This is list is not fully inclusive, as this is the most common problem
with games failing to run on Voodoo2. A future version of Voodoo2
drivers will incorporate a mechanism for helping users to remove older
versions of Glide on Voodoo2 based systems to help address this problem.
Croc: Croc installs Glide 2.43 into the local game executable directory. Remove that version of Glide or rename it glide2x.old, or delete it all together and let the game use the glide2x.dll in the \windows\system directory that gets installed with Voodoo2.
Incubation: Requires that all older versions of Glide be removed.
Nightmare Creatures: Requires that all older version of Glide be removed.
POD: Requires that all older versions of Glide be removed. If patch fails to install, run it several times, as there have been reports of patch failures.
Ubisoft F1RS: Requires that all older versions of Glide be removed.
Class 4: Application Updates Required
This class of application failure typically needs very minor updates
in order to work properly with Voodoo2. In many cases the application
makes calls that are outside the Glide or Direct3D programming specifications,
which may have worked on previous architectures, but will not work on current
and future architectures. 3Dfx is working with these developers to
update their applications as quickly as possible.
Carmageddon: Glide application error. The problem is known and is being addressed with the developer.
Descent 2: Fails to follow the Glide programming specification. An update is due shortly from the developer.
Moto Racer: Game plays but fails after a race. Direct3D application error. The problem is known and is being addressed by the developer.
Nuclear Strike: Glide Application error. EA is working on fixes.
Outlaws: Problems is known, but currently not reproducible. One of our best Glide engineers unfortunately isn’t good enough at Outlaws to make it to the end of level 1 (ok, so he’s a great programmer but not so good at Outlaws, give him a break). One of our “better” game players will complete level 1 for our Glide programmer to demonstrate failure so application can be fixed.
Twisted Metal 2: Direct3D application error. 3Dfx and developer are aware of the problem and it is being addressed.
Class 5: “Old” Glide Apps
This class of application failure is due to the application making
use of versions of Glide (other than glide2x.dll), versions of Glide that
are statically linked Dos Glide titles, or making use of a Dos Glide DLL.
All of the titles in this class of failures were built with versions of
Glide 2.1 or lower. Voodoo2 does not support titles built with Glide
versions 2.1 or lower. Some titles may, however, work with a unique
combination of environment variables (listed elsewhere in the FAQ) called
“Voodoo Graphics/Voodoo2 transitional environment variables.”
Battle Area Toshinden
EF2000 (works with the Voodoo Graphics/Voodoo2 transitional environment
variables)
Jeffighter 3
Mech Warrior 2 3Dfx (works with the Voodoo Graphics/Voodoo2 transitional
environment variables)
Scorced Planet
Starfighter 3000 (works with Voodoo Graphics/Voodoo2 transitional
environment variables)
VRSoccer ’96
Whiplash
X-Car (works with Voodoo Graphics/Voodoo2 transitional environment
variables)
Class 6: Driver Update Required
This class of application failure is due to bugs in the Voodoo2
drivers and will be fixed in the next release of drivers, which is currently
planned for the week of 3/6/98.
Flying Corps Gold
Ultimate Race Pro
Wing Commander Prophecy
Tomb Raider 1
Section 4: General Q & A
Q. What is Triple Buffering?
A. What triple buffering does is improve the frame rate up to a
maximum of the monitor refresh rate -- triple buffering will not get you
results higher than monitor refresh, though. It just smoothes out
the drawing time to approach the monitor refresh rate. Not waiting
on Vsync will allow Voodoo2 to draw as fast as possible and will never
be limited to monitor refresh rate. Older versions of the miniGL
driver for Voodoo2 do not enable triple buffering by default – future releases
will. The next release of the miniGL driver is a couple of weeks
away.
Q. Is the DAC new on Voodoo2?
A. The DAC used on the Voodoo2 reference design is the ICS DAC.
It is identical to the DAC used on the original Voodoo Graphics product.
Q. When can we expect a Glide with strips and fan support?
A. Glide 3.0 is schedule for release in mid-year, and includes
full support for strips and fans.
Q. How does Voodoo2 do on AMD-based systems?
A. We don’t currently run comprehensive benchmarks on AMD processor
based systems, but in general (and we don’t guarantee this) an AMD K6 @
266 runs about like a Intel Pentium @ 200 MHz in games like Quake II.
Q. What kind of performance can I expect with Voodoo2 on a lower
end system?
A. Voodoo2 is 2-4x faster than Voodoo Graphics. Some games
are more CPU limited than others (Quake II is one example) and hence are
more limited by the performance of their processors than the speed of their
graphics. On these lower end systems with CPU limited games, Voodoo2
may not provide a 2x-4x increase in frame rate. It will improve frame
rate, and allow games to run at higher resolutions, typically at the same
frame rates that it runs 640x480. Voodoo2 will also have considerable
headroom for future CPU performance gains. (as much as Voodoo Graphics
did)
Q. Does Voodoo2 work on Intel 430fx chipset based motherboard.
A. Yes.
Q. Why does my screenshot function fail in Quake II?
A. There is a bug in the current miniGL driver which causes this.
It will be fixed in the next release of the miniGL driver.
Q. Can I use two different manufacturer’s Voodoo2 boards in SLI
mode? (ie. One Diamond card and one Creative card?)
A. No.
Q. Can I use two different configurations of the same manufacturer’s
Voodoo2 board in SLI mode? (ie. One 8MB and one 12MB board?)
A. No.
Q. When are the new Voodoo2 drivers coming out?
A. A new driver release is expected the week of 3/6/98.
Q. Is the video pass-thru quality on Voodoo2 boards better than
on Voodoo Graphics boards?
A. Most definitely. We spent a lot of time making sure the
video pass-thru quality on Voodoo2 is much improved from Voodoo Graphics.
Many users are running 1600x1200 resolution at 85 Hz refresh rates with
no video signal degradation or other problems.
As long as you have the latest version of Moto Racer, it
should work fine.
Please download the Moto Racer patch from:
http://www.mracer.com/patch.html
Also, see Tony Tamasi's posts regarding deleting older,
extraneous Glide DLLs from your hard drive.
So far, it looks like many of the problems users have found have
simple fixes. The big challenge right now is getting the
information to the customers.
Dylan Rhodes: Product Marketing Manager, Graphics and Video
Creative Labs, Inc.
Now you are now saying it's a problem with the game and being
addressed by the developer. Perhaps you guys should get your stories
together.
------------------------------------------------------------------------------------------------------
On Fri, 27 Feb 1998 14:45:01 -0800, Tony Tamasi <to...@3dfx.com>
wrote:
>Voodoo2 Support Guide & Frequently Asked Questions
>Updated 2/27/98
>
Lee Bordenet wrote in message <34f74a89...@news.3dfx.com>...
>It's interesting that for a couple of days we've been told:
>
> As long as you have the latest version of Moto Racer, it
> should work fine.
> Please download the Moto Racer patch from:
> http://www.mracer.com/patch.html
> Also, see Tony Tamasi's posts regarding deleting older,
> extraneous Glide DLLs from your hard drive.
> So far, it looks like many of the problems users have found have
> simple fixes. The big challenge right now is getting the
> information to the customers.
>
> Dylan Rhodes: Product Marketing Manager, Graphics and Video
> Creative Labs, Inc.
>
>Now you are now saying it's a problem with the game and being
>addressed by the developer. Perhaps you guys should get your stories
>together.
Lee:
Both Tony and I have the same goal in mind: getting information to users as
soon as possible so they can begin enjoying game play as soon as possible.
As you may have noticed, I try to empirically test each fix as I hear about
it (see my post earlier today, entitled "Uprising patch," asking for
feedback on the report that the latest Uprising patch solves users' problems
before I put it in the FAQ).
This is what I did with Moto Racer. Several people have reported that they
had troubes getting Moto Racer to start. Once they applied the patch, Moto
Racer runs just fine. I haven't yet seen any reports of it locking up after
the first race. Somebody may have mentioned this on the newsgroup, but it's
a big newsgroup with a lot of traffic.
Tony and I talk on the phone quite a bit, but we each have access to
different resources and are getting our own bug reports, and -- as you're no
doubt aware -- we work for different companies. It looks like Tony got some
additional bug reports, and he's taken the action of contacing EA. It looks
like there could be two bugs -- one which causes Moto Racer to fail to start
(and which was resolved by the patch), and another one which happens for
some people at the end of a race. I don't yet know.
Now, just a few minutes ago, I got an e-mail note from the compatibility and
technology lab at EA. He writes:
"Moto Racer will lock up, no settings alleviate this problem, but having the
latest Moto Racer patch from our site does. Make sure ONLY Glide 2.5 is in
Win\Sys."
Like Tony and I, he's reporting his experiences. They're slightly
different.
As I said, our goal is to get information to users as soon as possible, so
they can begin enjoying game play. Sometimes, I don't get all the
information at once, but I'm going to continue to post whatever information
I get as soon as I confirm that it's valid. If I'm not sure, I'll write
something like "it should run fine."
In a few seconds I'm going to post the rest of the information I've received
from EA. Here's the disclaimer I'll use:
Some of this information may end up being incomplete, or it may change.
This is the information we have now. If your experiences differ, please
tell us.
--
Kipi
One bug was masking another, non-repeatable bug that only exhibited
itself after playing through an entire level.
Tony
Quake II: Running Timedemo
1. Run Quake II.exe
2. Hit <ESC> to open the start menu. Use the Down Arrow key to the
"Video" page.
3. Use the Left Arrow key to select the 3Dfx OpenGL driver. Hit <Enter>.
4. Use the Down Arrow key to select the “Video Mode.” Use the Arrow
keys to select 640x480. Hit <Enter>.
5. When done, hit the "~" key. This will bring down the console.
6. Type "timedemo 1" and hit <Enter>.
7. Type "demomap demo1.dm2" and hit <Enter>.
8. After the timed demo finishes, it will give a total fps at the bottom
of the screen. Record this number.
----------------------
I would add that to turn sound off in Quake2, you need to do the
following at the console:
5.1 Type "s_initsound 0" and hit <Enter>
5.2 Type "snd_restart" and hit <Enter>
Jon Graehl
Rodman
Jon Graehl wrote in message ...
>An excerpt from Tony's excellent FAQ:
>
>Quake II: Running Timedemo
>1. Run Quake II.exe
>2. Hit <ESC> to open the start menu. Use the Down Arrow key to the
>"Video" page.
>3. Use the Left Arrow key to select the 3Dfx OpenGL driver. Hit <Enter>.
>
>4. Use the Down Arrow key to select the “Video Mode.” Use the Arrow
>keys to select 640x480. Hit <Enter>.
>5. When done, hit the "~" key. This will bring down the console.
>6. Type "timedemo 1" and hit <Enter>.
>7. Type "demomap demo1.dm2" and hit <Enter>.
>8. After the timed demo finishes, it will give a total fps at the bottom
>of the screen. Record this number.
>