[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.) |
|
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. ;-) |
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 |
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 |
+1.3 |
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 |
special |
gl_picmip | 0 |
0 |
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 |
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 |
n/a |
vid_gamma | 1.0 |
Decimal values |
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 |
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- |
" |
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