I am getting the same exact issue on my box, i7 950, gtx 460. Multiplayer anywhere from 65-115 FPS with everything at High 1920x1200, and no Ambient Occlusion. Feels pretty damn smooth.
If I launch the first mission in single-player I get 70-90 fps right off the bat, but it feels very very choppy like I’m running 30 fps. After playing single player for a bit, all of a sudden the fps (checking both com_showfps AND fraps) locks to 30 fps and stays there. You can disable and enable as many options as you want, it will stay RIGHT at 30, even with vid_restarts. If you quit out of the campaign and go back to character select, pops right back up to default fps (150-170 in character select). If you start a mission it will have “show” normal fps but feel wrong and again after a bit lock down to 30 fps.
Very odd that it works fine in multiplayer and not in single. I even tried adding an autoexec.cfg and using the following options:
seta com_unlockfps “1”
seta com_unlock_timingmethod “0”
seta com_unlock_maxfps “100”
seta com_allowconsole “1”
They apply properly, and “seem” to work, but again after a while just locks to 30 fps in single-player. I assume there is some odd hidden cvar capping the single player fps to 30, though I’m not sure why the game doesn’t realize until playing for a while.
Hopefully there will be a fix soon. I do enjoy the multiplayer but would like to do the single-player campaign/challenges as well, and currently it is unplayable.
Playing around with it a bit more, I think it has to do with the fact that when playing Solo or Private, you are running your own listen server (I assume its just running a listen server). I also assume this listen server is capping the fps to 30. Just a guess.
I also read something int he Enemy Territory: Quake Wars Tweak Guide: “Importantly: All of the above only applies when you are on a multiplayer server, not in offline mode where FPS is capped at 30FPS no matter what you do with the any of the above settings. So to experiment properly I recommend you join an online multiplayer server.” Since they are using the same engine AFAIK, I hope this is not a limitation we will have to deal with in “offline” or “solo” mode.