Performance Tuning

From WolfWiki
Revision as of 04:43, 27 August 2006 by Lagger (Talk | contribs) (Improving performance on video card limited systems: - Added r_subdivisions and r_lodcurveerror)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Performance bottlenecks and workarounds

The following describes general areas which can affect game performance, and possible workarounds. Network performance is not addressed here, except as it relates to CPU usage.

Hardware mentioned is meant only as a general example.

CPU and system memory speed

As a general rule, ET likes lots of CPU and memory/cache/FSB bandwidth.

Anything less than an Athlon XP 2000 or Pentium 4 2GHZ. Systems with poor memory bandwidth (SDR or DDD266 RAM) or crippled cache (celeron, duron) will suffer.

Improving performance on CPU limited systems

  • b_optimizeprediction 1
  • Higher ping and packet loss put more load on the CPU
  • Larger servers put more load on your system

Video card

Anything less than a geforce4 (not MX) or radeon 9600 will be a serious handicap. Beware of manufacturers deceptive naming conventions, a FooBar 1000XTS might be the best available card while the FooBar 1000LE is utter crap.

Improving performance on video card limited systems

Note: you may experience that maps appear to load twice because of restrictions enforced on these cvars by server and league admins.

  • Lower resolution
Choose a lower value for r_mode; use /modelist to see available modes
  • Lower texture quality
  • Lower color depth
  • Lower Curve Detail
    • Set r_subdivisions 25 - higher value gives lower detail. sane values are 1 - 25.
    • Set r_lodCurveError 125 - controls the distance from you where detail is lowered, sane values are 100 - 10000.
  • Other quality settings
    • Set r_fastsky to 1

Available Physical RAM

256 megabytes or less of system RAM will impact level load times and cause hitching (momentary drops in FPS) in game. If levels take a long time to load, or your hard disk is frequently active during gameplay, you are most likely need more RAM.

Settings for systems without much system RAM

  • r_picmip and r_texturebits, as above
  • lower sound quality
  • set com_hunkmegs to 56, or the lowest value that works with all the maps you want to play.
  • other memory cvars should not be set too high above the default.

Integrated sound

Most integrated sound devices suck, and can cause noticeable FPS loss and stuttering.

External Programs

In general, the less you run when you play ET, the better. However, some programs are known to have disproportionate performance impacts.

  • x-fire in game integration features.
  • p2p bittorrent, kazaa etc.
  • malware viruses, spyware and addware can all cause serious performance problems.
  • scheduled tasks such as windows update or antivirus updates
  • software firewalls and antivirus some of these products have been reported to cause problems. (TODO more details)

Benchmarking and Testing

To get the best performance out of your particular system, you should test each tweak to ensure it has the desired effect.

You can use the timedemo cvar to benchmark demo playback. Do this by setting timedemo 1 in the console, and then playing back a demo. When the demo playback completes, the console contains an average framerate. If you have problems playing back demos, see Client_Configuration

If you want to compare performance between mods, you can use an etmain (or any server only mod such as etpub or shrubet) demo and play it back both in etmain and etpro.

It is important to remember that demo playback is not directly comparable to online play. In general, demo playback depends more on the video card than online play does. A tweak that shows a huge improvement in demo playback may have little effect in online play.

To test performance in real play, you should use cg_drawFPS and then pick a standard location. This will not give you exactly the same results every time, but will show major effects. Ideally, the test should be done on an otherwise empty dedicated server with a consistent ping. If you host the server on the same machine as the client you are testing, this will affect the results.

TODO: it would be nice to have a standard timedemo demo, so people can compare results.

TODO

This page is a draft. The following need to be added or expanded:

  • examples of FPS for various typical systems/settings, so people can know if they are getting expected performance out of their hardware.
  • more complete list of useful cvars.
  • links to config sites.
  • links to more detailed descriptions of settings.
  • benchmarking