# Limit FPS in Games to prevent overheating

When playing games on my laptop (MacBook Air 2011 with Intel HD 3000 integrated graphics), the temperature of the processor / GPU quickly reaches to 95°C causing it to throttle down every couple of seconds.

In this situation, the FPS drop from about 40-60 to 10 for a moment causing big stuttering.

In CSS, I was able to work around this problem by limiting the FPS using the built-in console command fps_max 30 to 30.
This not only solves the stuttering but also reduces the noise and temperature of the CPU / its fan while gaming.

However, most games don't offer a comparable functionality (not that there are too many running on OSX :-) )

Especially when playing Left4Dead 2, I really miss fps_max (which is not available there).

It seems that Valve has removed fps_max from servers while stating

The fps_max convar will not have any effect on servers. (It remains as a client option since limiting your FPS can reduce GPU heat and overall power consumption.)

Does someone know whether they have included other measures to prevent GPU overheating similar to fps_max? At least, they seem to know the downside of simply removing it.

Even better than a solution only applying to L4D2 would be a system wide option to limit the FPS in games.

Is there any?

-
Are you sure fps_max isn't available in Left 4 Dead 2? The statement you quoted from Valve makes it seem as if it is available for the client; if it has been removed entirely, then that's quite misleading. – Deco Apr 16 '12 at 7:39
Perhaps commands entered into the console are being directed to the listen-server, perhaps you could try placing fps_max 30 at the top of C:\Program Files (x86)\Steam\steamapps\common\left 4 dead 2\left4dead2\cfg\autoexec.cfg. – Deco Apr 16 '12 at 7:41

A lot of games will have something called "VSync" (or vertical sync or something similiar). Enabling this will limit the FPS to the refresh rate of your monitor which is usually 60Hz on the MacBook Pro that you specified.

-
Thanks for your response. However, Vsync at 60 FPS is still to high. Most of the time, the FPS are around 40-50 (and still overheating). Being able to change the VSync "target FPS" somehow would be nice. (BTW: It's a MacBook Air and not a Pro - they seem to have made it thinner without really caring about the TDP of the processor...) – Matthias Jan 1 '12 at 10:41
I just tried reducing the LCD's refresh rate to 29Hz / 30Hz using SwitchResX. However, the monitor starts flickering very badly at this refresh rate (even when looking at the desktop). Does anyone know which refresh rates (below 60Hz!) LCDs are usually able to handle without starting to flicker (e.g. as part of some video format specification)? – Matthias Jan 1 '12 at 11:46
@winSharp93 Any refresh rate other than your monitor's native one will usually look less than optimal because your monitor is refreshing slower than it should. I'm afraid I haven't got a better solution than this, but it clearly won't work for you. – NightExcessive Jan 1 '12 at 15:57

This is a tricky one. Apple (by and large) keeps their stuff pretty much under wraps, and doesn't expose most of this functionality.

It should be possible to set a maximum p-state or clock frequency on the CPU, which would effectively throttle the performance of the game, but all of the support for this is 3rd party, and largely Apple has locked out access to these features.

Voodoo Power used to do this, but the site is down and I'm assuming it's out of date. xnu-speedstep is still around, but I'd wager it's not working on recent OS or hardware revisions. Most of these projects grew out of the desire to run OSX on non-Apple hardware, and as such they're experimental at best, and will likely crash your system.

It's possible to set priorities of different processes under *nix OS'es, and you can do this, but it's still likely that it will eat 100% of the CPU/GPU time while you're playing the game. You'd want to have a look at something like renice for this.

smcFanControl may be an option - you could use it to override the default Apple fan control and set it so that your fans are always 100% on. This won't make it quieter, but it might make the system temperature a bit more constant.

The other (likely completely unhelpful) thing you could do is use Bootcamp to load Windows, and rely on Windows' support for power management. You'll have more options in terms of games, too. However, dual booting is probably not the most ideal solution.

-
Thanks! I am already using a 3rd party fancontrol-tool. It greatly reduces the time till overheating but isn't able to prevent it entirely. I already found an application called "CoolBook" which enables undervolting - however, it is not compatible with the 2011 lineup. In general, finding system near tools for OSX is really much harder than it is for Windows. The website of "xnu-speedstep" says that it has been "deprecated in favor of VoodooPower" in 2010 and it mainly seems to be helpful for running OSX on non-Apple hardware. – Matthias Jan 1 '12 at 10:47

You can try a laptop cooling pad and see if that'll help.