[Baseline] [Options Settings] [Console Commands] [Overclocking] [Comparison] [CPU Speeds]


GLQ2 Multi-Player Tune-Up


This page refers specifically to Quake II using the OpenGL miniport. While some of these options may apply elsewhere, most of the console commands will be irrelevant outside of this setting.

These tests were done to test performance under the heavy system stress of a multi-player fragfest.


Performance Baseline

[Options Settings] [Console Commands] [Overclocking] [Comparison] [CPU Speeds]

All benchmarks were performed using the Hercules Thriller 3D 4meg PCI.  For other system info, click here.

The baseline value is 17.3 fps at 640x480 using Massive1, a 12-player demo created by Brett Jacobs.  You can get the demo here, here, or here.  This demo requires no additional maps.

The benchmark was conducted in the following manner:
1) Hit the "~" key to bring down the console.
2) At the console type:
     timedemo 1 <Enter>
     map massive1.dm2 <Enter>
3) The demo was run to completion and the number was recorded. Due to the length of the demo and the consistency of the results, it was deemed unnecessary to run the benchmark more than once for each parameter. Or maybe it's just because I'm lazy. ;-)

Note: if you wish to play the game after running this benchmark, type timedemo 0 at the console and hit <Enter>. Also, Quake2 was restarted after each test, partially because under current conditions, Quake2 will crash my system when trying to run the benchmark more than once per session. After running Massive1, even hitting the "~" key will crash my system.

This baseline is for Quake 2 version 3.14; 16-bit textures; fullscreen; 120Hz refresh rate; highest-quality textures; no CD-music; high-quality, high-performance sound; red angle crosshair.

The opengl32.dll is dated January 9, 1998 and the v2000gl.uc is dated December 23, 1997.

The effects of all modifications to the baseline will be reported as a difference.  For instance, if changing a setting produces 20.0 fps, then a value of +1.7 would be listed (20.0 - 17.3 = +1.7)


Options Settings

[Baseline] [Console Commands] [Overclocking] [Comparison] [CPU Speeds]

Setting Description Speed
Low-quality Sound
(high-performance)
Uses 11KHz sound samples instead of 22KHz.  The effects of this setting will vary depending
on the quality of your sound card . (DSP vs. no DSP, PCI vs. ISA, etc.)
+0.8
8-bit Textures This setting uses 256-color instead of 65,000 color textures, cutting memory used for textures
in half.  Surprisingly, the image quality is not affected that much (and neither is speed). At
800x600 this setting would be important as less memory would be left for textures. But if
you're running at 800x600, you're either not a competitive player or you certainly don't need
my help. ;-)
+0.1


Console Commands

[Baseline] [Options Settings] [Overclocking] [Comparison] [CPU Speeds]

These are only a few select commands that are directly related to performance.  For a more complete console command list, check out Farenheit 176 on Planet Quake. The 3 Fingers' Quake 2 Tweak Guide by Brett Jacobs is also an excellent resource. You can get the latest version here or here. Some of Brett Jacobs' information is specific to 3Dfx Voodoo cards, so read carefully.

Console
Command
Default

Valid Values

Description

Speed

cl_maxfps

90?

integers

This setting was not tested but is valuable for internet performance.
Setting a value here places a cap on the frames per second, which
is very important for internet play because it reduces the amount of
traffic between client and server. I prefer a value of "25", but you
may prefer a higher value.

n/a

cl_particles

1

0 or 1

Setting this to "0" disables the display of particles.  No blood, no
bullets, no weapon trails, no rail gun spiral, etc.

+1.7

hand

0

0, 1, or 2

"0" is right-handedness, "1" is left-handedness, and "2" results in a
center-mounted weapon.  A setting of "2" also no longer displays
the weapon model, which results in a speed increase.

+0.7

gl_dynamic

1

0 or 1

Setting this to "0" will disable dynamic lighting caused by stationary
light sources (also, no weapon flash).  Setting this to "0" overrides
any gl_flashblend settings.

+0.9

gl_flashblend

0

0 or 1

When set to "1", weapons that emit light will have that light
representing by a glowing haze. Note: you can't light up dark
corners this way. Effectively canceled by gl_dynamic "0" as
dynamic lighting will not be rendered at all, even by this alternate
lighting method.

+0.2

gl_mode

3?

0 = 320 x 200
1 = 400 x 300
2 = 512 x 384
3 = 640 x 480
4 = 800 x 600
5 = 960 x 720
6 = 1024x768
7 = 1152x864
8 = 1280x1024
9 = 1600x1200

This sets the resolution. Available modes are limited by the amount
of graphics memory on your card.

400x300 runs only in a window on the Thriller 3D.

512x384 provided little benefit over 640x480 with the Mess
demo, except when trying multiple tweeks simultaneously. On
Demo1, however, it provided an increase of  +3.6 fps (from 20.8
up to 24.4).

+1.3
not tested
+1.0
baseline
-3.7
not tested
not tested
not tested
not tested
not tested

gl_playermip

0

0-4 (integer)

In multiplayer, every player's skin uses up memory for the texture.
In a large game, this could cause a HUGE slowdown as your video
card has to load textures from your system memory.  Each number
above 0 here will halve the amount of memory used to store skins.
"1" will use 1/2 the memory, "2" will use 1/4, etc.  People will look
blurry, but you may live long enough to kill them.

Under benchmark conditions, gl_playermip no longer seems to
function. Even setting this value to "4" produced no apparent
reduction in skin resolution. It seems that this function has been
subsumed under gl_picmip. Strangely, however, setting this value
to 1 or 2 caused a 0.2 fps increase, and a setting of 3 or 4
produced a 0.1 fps increase.

special

gl_picmip

0

0
1
2
3
4

The variable saves memory on all textures except player skins. At
least that's how it used to work.  This setting now seems to affect
ALL textures, including player skins.
See notes on "gl_playermip".

baseline
+0.6
+0.7
+0.6
+0.5

gl_polyblend

1

0 or 1

Setting this to "0" will disable the haze effect /color shift that occurs
when underwater, getting injured, or using a power-up.  This can
make you more competitive simply because you can see better.

+0.4

gl_swapinterval

1

0 or 1

Setting this to "0" disables the time delay between frame swaps.
Note:  gl_ext_swapinterval must be set to "1" for this setting to
work.
Under benchmark conditions, this must be set to "1" to stop
the textures from flashing.

+0.4

gl_ztrick

0

0 or 1

Set this to "1" and the system will bypass clearing the Z-buffer
(depth /z-axis) information.  Can cause visual anomalies, but none
were noted on the benchmark system except model flashing under
the multi-player => player setup screen.

+0.2

rate

25000

integers

This is another untested value, but one important for internet play.
It sets the number of bytes/sec that you want the Q2 server to send
to you. 25k is obviously too much for a modem. A 28.8 or 33.6
modem will probably handle "2500" well, 56k may handle "4000",
and dual-ISDN probably up to "10000".

A way of guessing this value would be to use the number of bytes
per second that you get while downloading from fast servers and
then drop that value down about 10-20%. It also may help to
make this value a multiple of your MTU. If you don't know what
that is, then don't worry about it.

n/a

vid_gamma

1.0

Decimal values
between 0
and (?)

This command used to be necessary for adjusting brightness, with
lower values being brighter.  I prefer "0.4". The slider bar now
seems to work, however, although it does so by using this
"vid_gamma" setting. The leftmost position sets this value to "1.3",
and the rightmost position results in a value of "0.5".

n/a

What is the cumulative effect of some of these settings?  These next benchmarks were run using the following settings from a commonly recommended multi-player autoexec.cfg seen in many of the Quake2-related newsgroups (I believe it was authored by Brett Jacobs):

set s_primary "0" (I prefer "1" which will use the primary sound buffer, but that causes problems for some sound cards.)
set s_mixahead ".14"
set cl_predict "1"
set gun_z "3" (These gun position commands will not work when logging into a Quake2 server.)
set gun_x "-3"
set gun_y "0"
set cl_particles "1"
set gl_dynamic "0" (this value seems to be contradicted by the gl_flashblend setting below)
set gl_polyblend "0"
set gl_playermip "2" (seemingly non-functional under benchmark conditions.)
set gl_flashblend "0"
set gl_ext_swapinterval "1"
set gl_swapinterval "0" (this value should be changed to "1" for the new Vérité miniGL.)
set gl_ztrick "1"
set cd_nocd "1"
set in_mouse "1"
set in_joystick "0"
set in_initjoy "0"

You can download this autoexec.cfg here.  Unzip it to your \Quake2\BaseQ2 directory.

How was performance affected?

Resolution Autoexec.cfg? Vsync in Flip?

Low-Q, High-P
Sound
?

8-bit Textures?

Performance

640x480

No

On (default)

No

No

17.3 (baseline)

"

Yes

On

No

No

+1.1

"

Yes

Off

No

No

+1.1

"

Yes

Off

Yes

No

+1.9

"

Yes

Off

Yes

Yes

+1.9

512x384

No

On (default)

No

No

+1.0

"

Yes

On

No

No

+2.5

"

Yes

Off

No

No

+2.5

"

Yes

Off

Yes

No

+3.7

"

Yes

Off

Yes

Yes

+3.8

"Vsync in Flip" in an option in the Hercules Thriller 3D display properties.  Supposedly it disables synchronization between the video card and the monitor refresh.  Normally a video card will have to wait to update the monitor until the electron gun is finished painting the screen. Disabling Vsync is supposed to tell the video card to update the screen immediately. As you may see from above, this option provided no measurable benefit, but neither did it do any harm.


Overclocking

[Baseline] [Options Settings] [Console Commands] [Comparison] [CPU Speeds]

Card

m

n

SclkP MclkP

Memory

RISC

Comments Speed
Thriller 3D

14

1

5

2

100.2 MHz

40.1 MHz

Default speed for Diamond Stealth II?

-2.5

"

28

2

4

2

100.2 MHz

50.1 MHz

Default speed for Jazz Outlaw 3D?

-1.5

"

33

2

4

2

118.1 MHz

59.1 MHz

Highest safe setting for my Stealth II.

-0.1

"

34?

2?

4?

2?

121.7 MHz?

60.9 MHz?

Default (empty verite.ini) for v 0.74
Hercules Thriller 3D drivers.

base-
line

"

35

2

4

2

125.3 MHz

62.6 MHz

Default for original Hercules Thriller 3D
drivers.

+0.3

"

37

2

4

2

132.4 MHz

66.2 MHz

Highest reliable setting for my Thriller.

+0.5

Apparently, the newest Hercules Thriller 3D drivers do not clock the card as aggressively as the original drivers.


Comparison

[Baseline] [Options Settings] [Console Commands] [Overclocking] [CPU Speeds]

All results below are for 640x480 unless otherwise noted.

Renderer Comments Speed

Change vs. Baseline

Software rendering Using the Thriller 3D

9.8 fps

-7.5

VQuake2
(v1k renderer)
Using the Thriller 3D. At this time, VQuake2 will no
longer run on the benchmark system.

n/a

n/a

VQuake2
(tweaked)
Using "v1k_nopageflip 1", "v1k_surfacelookup 0", and
"v1k_mipcap 3". Ugly, but pragmatic.

n/a

n/a

Thriller 3D
(tweaked)
Using multi-player .CFG file listed earlier.  Not
overclocked.

13.0 fps

+1.9

Creative Labs 3D
Blaster Voodoo2
Running 800x600 with no tweaks. 25.4 fps

+8.1

The effects of some of the different miniGL releases was also tested.

GL Driver

Date

Comments

Speed

verite.dll

Jan 9, 98

Baseline

baseline

verite_alt.dll

Jan 12, 98

Recommended

+0.2

veritegl.dll

Jan 20, 98

Occasional visual anomalies

+0.1

veritegl_alt.dll

Jan 21, 98

Occasional visual anomalies

+0.1

alpha ICD

Feb 25, 98

Crashed system.  Appeared fine for the time that it did run.

n/a


CPU Speeds

[Baseline] [Options Settings] [Console Commands] [Overclocking] [Comparison]

I re-ran the baseline tests at different CPU speeds to note the effects.  Here are the results:

CPU Speed Bus Speed Comments Performance

133 MHz

66MHz

This will be faster than a Pentium 133
because the MMX chip (tested here)
has twice the internal cache.

-4.0

166 MHz

66 MHz

-1.7

225 MHz

75 MHz

+1.4

For information on overclocking your CPU, check out Tom's Hardware Guide.

For information on other CPUs, check out my CPU page.


Benchmarking System

[Baseline] [Options Settings] [Console Commands] [Overclocking] [Comparison] [CPU Speeds]

Relevant Hardware (latest non-beta drivers as of Mar 5, 1998)
Intel Pentium 166 MMX overclocked to 200MHz.
Megatrends HX-83 Motherboard
64mb 60ns EDO RAM (Micron)
Hercules Thriller 3D 4meg PCI
Creative Labs 3D Blaster Voodoo2
3.2gig Quantum Fireball EIDE Hard Drive
Soundblaster AWE64 Value
Diamond Monster Sound

Relevant Software and Settings
Win95b (OSR2)
1280x1024x16-bit Desktop Settings