So I was playing Battlefield Bad Company 2 today for the first time in many months and for some weird reason, my GPU randomly downclocks every few minutes on the Panama Canal map in multiplayer. The throttling is quite severe, as it drops from my overclocked setting of 1150 MHz core 4500 MHz memory down to stock 790/4000 or even lower, which causes a noticeable drop in frame rate.
The weird thing is, this downclocking only happens on the Panama Canal map. Furthermore, the clocks shoot right back up to 1150/4500 when I turn on the RTSS OSD (I've got the toggle bound to a keyboard hotkey), and the game becomes smooth again.
CPU is fine, pegged at 3.2 GHz across all cores the entire time with ThrottleStop turned on and 30-50% overall utilization in-game. And it's not a temperature issue either as both GPU and CPU are in the 70's when it downclocks. In fact, GPU usage is only around 70-80% with the game maxed out because I'm using a 58 FPS cap. I've also got adequate power, as I pull about 110W from the wall tops while playing BC2 (measured using a Kill A Watt), which is well under the 170W of my power brick plus factoring in PSU efficiency.
BC2 is the only game in which this throttling occurs. I can play much more demanding titles, such as the power virus that is PlanetSide 2 on max, which pegs both GPU's at 99% constantly and heats them up to almost 90C, and the clocks don't budge.
It's not due to an unstable overclock as the display driver doesn't crash and there is nothing in the Windows event logs. This overclock is 100% stable--it has never once crashed on me and can pass Heaven+Prime95 overnight.
I'm using the 337.88 driver. I remember this didn't happen the last time I played BC2 several months ago, but I don't even remember which driver I was on back then. I sure hope this isn't Nvidia playing dirty tricks with their drivers.![]()
Any ideas?
-
Is there anything in BC2 that would use gpu for non video related (physics) task? Try dissabling your gpu's from being able to be used by physx.
-
-
Alright, I figured it out.
At first, I thought the downclocking might've been because I'm using the Adaptive power management mode in Nvidia Control Panel instead of Prefer Maximum Performance. So I changed it and clocks were rock solid at 1150/4500 the entire time, yet BC2 still dropped frames and GPU usage just like before, it just didn't downclock.
After some more fiddling around and testing, I've found that the FPS drops are actually related to the new Shader Cache feature that was introduced in the Nvidia driver since 337.50. It's a setting that's supposed to reduce loading times and CPU usage in DX10/11 games by saving compiled shaders to a disk cache. It also has the benefit of eliminating a lot of the in-game stuttering and drops in frame rate due to on-the-fly shader compilation, such as occurs when entering new areas or loading a lot of new assets.
Recently, I've been having problems with not being able to hibernate or shut down my PC, and I guess the hard shutdowns I did somehow corrupted the cached shaders for Bad Company 2. After turning Shader Cache off, deleting the NV_Cache folder, then turning Shader Cache back on, I was able to fix the problem.
Another thing I've discovered is that Bad Company running in DX11 mode absolutely needs Shader Cache to be enabled in order to run properly. The reason I never got these drops before with older drivers was because they didn't have Shader Cache. I guess Shader Cache really is an integral part of the pipeline in Nvidia's DX11-optimized drivers based on how much it can affect performance in games.
With Shader Cache turned off, it takes anywhere from 30 seconds to a minute, depending on the size/destructibility of the map, for BC2 to come out of 2D clocks and get above 15-20 FPS after entering a match. This happens with every map I play. Panama Canal, which is a large map and perhaps the most destructible one in the entire game, takes up to 5 minutes (!) before it becomes playable. I assume it's compiling shaders the entire time.
With Shader Cache enabled, the compiled shaders have already been saved to disk during the intial loading screen, so only the first map after launching the game stutters for a few seconds. Every map after that is butter smooth from the moment I enter the match. But even with Shader Cache enabled, I still get the occasional drop in FPS and GPU usage, especially if there's a lot of destruction or smoke on-screen, but they're much less frequent than before and only last a second or two. It really seems that Bad Company 2 loves to access the disk cache a lot during gameplay, and I wonder if moving the NV_Cache folder to an SSD or RAM disk would help.
Furthermore, the Battlefield games love to write a ton of stuff to the cache folder. The NV_Cache folder automatically garbage collects (wipes its contents) when it hits the 256MB mark, and this can't be configured. I can fill up all of that just by playing a few hours of BF3. The Shader Cache is not serving its purpose if it gets wiped so frequently, so what I've done is turn off Shader Cache globally in the driver and only enable it for the Bad Company 2 game profile. This way, all of the disk cache is dedicated to BC2, which is the only game which seems to be affected so much (or at all, really) by the Shader Cache.Mr Najsman likes this.
Weird GPU downclocking in Bad Company 2
Discussion in 'Gaming (Software and Graphics Cards)' started by octiceps, Aug 3, 2014.