Com preciseTic (cvar)


This CVar enables/disables the running of multiple updates in a single tic to keep the main and async threads in sync.


At the console type…

com_preciseTic [bool]


  • [bool]
    • 0 - Disable.
    • 1 - Enable.


Flag Enabled Description
CVAR_ALL all flags
CVAR_BOOL X variable is a boolean
CVAR_INTEGER variable is an integer
CVAR_FLOAT variable is a float
CVAR_SYSTEM X system variable
CVAR_RENDERER renderer variable
CVAR_SOUND sound variable
CVAR_GUI gui variable
CVAR_GAME game variable
CVAR_TOOL tool variable
CVAR_USERINFO sent to servers, available to menu
CVAR_SERVERINFO sent from servers, available to menu
CVAR_NETWORKSYNC cvar is synced from the server to clients
CVAR_STATIC X statically declared, not user created
CVAR_CHEAT X variable is considered a cheat
CVAR_NOCHEAT variable is not considered a cheat
CVAR_INIT can only be set from the command-line
CVAR_ROM display only, cannot be set by user at all
CVAR_ARCHIVE set to cause it to be saved to a config file
CVAR_MODIFIED X set when the variable is modified


There are two threads running in Doom 3, the main thread, and the ‘async’ thread. The main thread runs the game code, networking, physics, renderer, etc… The async thread takes care of sound if com_asyncSound is 1 or 3 (windows & linux), it also takes care of input if com_asyncInput is 1 (it defaults to 0).

The async thread wakes up every 16 milliseconds (60fps) to run an update. If more than 16ms have elapsed since the last update, it will run multiple updates to catch up (for example if 51ms have elapsed, it will run 3 updates). Similarly, if the update is called too soon, it gets ignored. When com_preciseTic is set to 0, it skips this bit of logic and always runs a single update no matter what.

–from binaryc post @