The problem#
Every game, no matter how old and simple, I run on my computer constantly uses an entire CPU thread even when idling at a menu. (Except for some newer multi-threaded games that do the same with multiple threads!) To raise this from a curiosity to a problem, this means that my computer's fans are on at full blast whenever I have a game going, so I notice.
The solution#
To be clear, that symptom could be the result of many different
possible causes, others of which I may explore in future blog
posts.1 But specifically for systems with Nvidia GPUs using
the Nvidia proprietary driver (as opposed to
nouveau), setting the environmental variable __GL_YIELD
to
USLEEP
fixed the issue in some games for me. To do so when running
a single game, run __GL_YIELD="USLEEP" /path/to/game
or
to do so permanently, add the line
export __GL_YIELD="USLEEP"
to ~/.profile
and restart X.