In the October 13, 2011 update, Valve locked all servers to run at a FPS equal to the tickrate, or 66.66. The game logic loop goes like this:
- Run a frame/tick. (These two terms are equivalent now, though they previously differed.)
- Calculate precisely when the next frame should occur and how long it needs to sleep to wait for it. For instance, by default, it puts 15ms in between frames; if the frame executed in #1 took 10.37ms to execute, it aims to sleep for 4.63ms.
- Execute a system sleep call to wait the period of time previously calculated. If host_timer_spin_ms is set, it further subtracts that many milliseconds.
- Check the current time and see if the goal time for the next frame has been reached. If so, it goes back to step #1. If not, it either:
- If host_timer_spin_ms is not set: Sleeps for a bit longer, then repeats the check in this step.
- If host_timer_spin_ms is set: Spin in a busy-loop until the goal time is reached, then goes back to step #1.
Previously, we split up our servers into two main performance levels:
- 500fps servers, run on Windows
- 1000fps+ servers, run on Linux, with a proprietary kernel FPS Locker to precisely maintain high FPS rates without fluctuations
As of October 13, because Orangebox no longer has different FPS rates, these two performance levels will become:
- Standard Windows servers
- Linux servers with the FPS Locker
The FPS Locker continues to increase the precision of kernel timers, which should result in a smoother gameplay experience. The FPS Locker makes host_timer_spin_ms unnecessary, which is good, because host_timer_spin_ms wastes CPU cycles.
The order page has been updated to reflect the changes, and to eliminate the "Extreme accelerator" option, as it is no longer needed. We are currently evaluating whether CPU usage will be lower following this update such that we can lower pricing.