How to Benchmark Halo

This is from the article at,3973,1354066,00.asp, which may or may not still be there for a long time (thus this post) You'll want to make sure you have patched Halo to the latest version before running any tests. The shipping version and 1.01 patch contained a bug where the code to track memory usage was being called upon every frame. This seriously impacted performance during benchmarks, and with the bug fixed (in patch 1.02) benchmark scores are a lot higher. This fix only affects benchmarks scores; it has no effect on performance during normal play.
To benchmark Halo, all you have to do is add a few command line options to the shortcut. The basic benchmark is run by adding “–timedemo” to the end of it, which will look something like:
"C:\Program Files\Microsoft Games\Halo\halo.exe" -timedemo Launching the shortcut like this will run the game with all the settings chosen from within the game and dump out some info to a text file called timedemo.txt. If you run multiple demos, the new tests get appended to the bottom of this file.
But you won't want to simply run the test this way. First, make sure you launch the game normally and go to the video menu. By default, Halo on the PC has a frame limiter that prevents it from ever running more the 30 frames per second. This is to help smooth out the extreme performance highs and lows. Make sure to change this to “NO VSYNC” to collect uninhibited performance data.

There are several other command line parameters that are useful for benchmarking Halo, which let you force resolutions, code paths, and so on:

Command Function
-useff force fixed-function pipeline
-use11 force pixel shaders 1.1
-use14 force pixel shaders 1.4
-use20 force pixel shaders 2.0
-nosound disable sound
-vidmode width,height force a specific video resolution
(such as: -vidmode 1024,768)

If you want to see just how ugly Halo can look, try out that fixed function pipeline option. Ouch! On GeForce FX cards, moving from pixel shader version 2.0 to 1.4 results in a really nice speed boost—with a further boost when you move down to PS1.1. ATI cards, which run far better with PS2.0, get less of a speed gain.
What graphical effects do you sacrifice by moving to a lower code path? When downgraded to PS1.4, the surfaces can no longer be both bump-mapped and mirrored. Some of the video effects are done in two rendering passes as well. Dropping further down to PS1.1, you lose self-illumination on many models, animated lightmaps, and per-pixel fog calculations. In practice, the overall visual difference between PS1.1 and 2.0 isn't huge, so dropping down to a lower pixel shader path is a perfectly viable optimization if you need more performance (and probably a better trade-off than playing at a low resolution). Even if you have a DX9-class card, some of the game's effects only require PS1.1.
Though not really useful for benchmarking, pressing Ctrl-F12 while playing the game brings up a handy frame-rate counter. This gives you an idea of which other performance settings (audio tweaks the like) help you the most during those intense firefights.

How to benchmark Halo


Go here.

Ctrl-F12 ingame to display framerate counter.

I did not see much of a difference between Pixel Shader 1.x and 2.0

My Results
For further information, please visit the timedemo FAQ at:
Date / Time: 10/19/2003 1:53:03 AM (45077062ms)
3120MHz, 1024MB, 128M ATI Radeon 9800 PRO (DeviceID=0x4e48) Driver= Shader=2.0
C:\Program Files\Microsoft Games\Halo\halo.exe -timedemo (Version=
Total Time=63.39s
Average frame rate=74.15fps
Below 5fps= 4% (time) 0% (frames) (2.676s spent in 4 frames)
Below 10fps= 4% (time) 0% (frames)
Below 15fps= 4% (time) 0% (frames)
Below 20fps= 5% (time) 0% (frames)
Below 25fps= 5% (time) 0% (frames)
Below 30fps= 5% (time) 0% (frames)
Below 40fps= 8% (time) 2% (frames)
Below 50fps= 27% (time) 13% (frames)
Below 60fps= 45% (time) 26% (frames)

Sound Options

Hardware Acceleration= Yes
Sound Quality= High
Environmental Sound= EAX
Sound Variety= High

Video Options

Resolution= 800 x 600
Refresh rate= 85 Hz
Framerate throttle= No Vsync
Specular= Yes
Shadows= Yes
Decals= Yes
Particles= Off
Texture Quality= High