1

When I play recent 3D games (Battlefield 3 & 4, Tomb Raider, Saints Row 3 & 4, etc.) I experience periodic FPS drops, e.g. in Battlefield 3 from the average of around 70-80 fps to 20-30 fps; Even if I stand still and look at the same spot. It happens about every 3s and the drop is only a spike - half a second long.

It's not the graphics card or driver, because I switched my AMD card with an NVIDIA and the problem persists. And while the game is running, I monitored CPUs, RAM, Pagefile and Graphics card: Each CPU core stays below ~70%, no single core goes up to maximum, RAM always stays below 12GB and pagefile doesn't get touched

Now how can I make the fps become constant or how do I debug this issue? I'm out of ideas.

My system:

  • Motherboard: AsRock Fatal1ty 990FX Killer
  • CPU: AMD FX-9370 (4.4Ghz 8-core)
  • RAM: Corsair 16GB 1860MHz (2 x 8GB in dual channel)
  • PSU: Corsair 750W
  • Storage: Samsung Evo SSD (OS) and Samsung 1TB 7200rpm (games)
  • Graphics: Asus Radeon R9 280X

What I tried:

  • update graphics card driver (to 14.9)
  • downgrade graphics card driver (to 13.11)
  • switch graphics card to NVIDIA Geforce GTX 760 - still, same frequent fps drops
  • play with almost every BIOS/UEFI setting
  • reset BIOS/UEFI settings to default
  • stress-test the CPU and RAM with Prime95... no power drops, no visual cues that would fit into the 3s-0.5s pattern
  • monitor the heat of CPU and graphics - CPU gives me 68 degree Celsius under pressure and graphics don't really heat up too much (sorry, forgot the number). Also the CPU is liquid-cooled.

...here are some graphics: http://imgur.com/a/w0z1o

  1. Screenshot from Catzilla benchmark, displaying the drops (because it measures and displays the fps constantly, not only every second). I also noted that the frequency can vary a little bit, i.e. the distance between the gaps is not uniform.
  2. Another Catzilla screenshot, same thing, but only 2s between gaps.
  3. Screenshot of GPUtweak (a graphics monitoring tool with a time resolution of 1s)... notice that in the first benchmark (left) that causes the lags, there is mixed GPU usage, while on the right in a permanently high GPU test there are none.
  4. CPU usage screenshot. During the benchmark this spiky pattern occurs - don't know if that's normal or related to the lag issues.

...I also noted that it gets worse after some gaming / warming up. Usually if I run the (Catzilla) benchmark twice in a row, the first run gets 1-3 gaps, while the second run is gapping 10-20 times.

EDIT 1 - 2014-10-05 14:29 GMT+1

I ran the file logging tool of GPU-Z. During the last Catzilla benchmark (during which a large number of spikes occured) there are "power downs" in the column "VDDC Current (A)", i.e. the values look like this:

61
60.2
68
1 <-- dafuq?
60.8

The temporal resolution is 0.1s, so each line is a tenth of a second. Is this normal - maybe during a black screen or something? Also the values in this column highly oscillate over the course of about 2-3s. Maybe a power thing? But what would I check to confirm this - switch out the motherboard or the PSU?

EDIT 2 - 2014-10-05 23:07 GMT+1

...Okay, this is weird. When the system is cold (first benchmark run after a long pause), the lagging disappears, but after getting warm (second benchmark run in rapid succession), the lagging starts and the overall performance drops. When cold the graphics card sensor gives me 40 degr. C, the CPU 64 degr. C. The CPU doesn't change so much (goes up to about 70 under full stress), but when the GPU reaches 65-70 degr. C, the problems occur. But then again... I switched the graphics cards with an NVIDIA - and also I suppose that those are still temperatures that they can handle. Maybe it's the motherboard warming up or something? Is that a thing? Northbridge?

EDIT 3 - 2014-10-05 23:27 GMT+1

In Process Explorer I got a clear picture of the error (right side): http://i.imgur.com/lto29Bb.png

  • Why would anyone downvote that question? I spent days on my own trying to figure this out and I spent an hour writing this and gathering the screenshots, trying to give as much detail as possible. – Florian Golemo Oct 5 '14 at 12:24
  • I too think you've done at least of reasonable amount of research on your own and the question seems well written, too. Don't expect an answer, though. Voting is annonymous...Upvote is mine. Good luck with the research. – elder elder Oct 5 '14 at 12:38
  • Wish I could help you more. In case you don't get help from someone more knowledgeable, try Tomshardware's forum, you might bump into more enthusiasts there. – elder elder Oct 5 '14 at 21:22
  • Thanks a lot! :) You indeed got me new ideas and while reading about ProcDump and Process Monitor, I stumbled over Process Explorer with really good logging and info capacities and it gave me a nice clean picture of the error - see my Edit 3. But yeah, will also ask on Tom's Hardware and post back the solution if I find something. – Florian Golemo Oct 5 '14 at 21:28
  • Sounds promising, good luck! If you found my input useful, and feel like it, an upvote for my answer would be appreciated. – elder elder Oct 5 '14 at 21:47
1

(Kinda) found the solution:

The problem was the combination of components / high temperatures and thermal throttling: both the CPU and GPU draw huge amounts of energy and get very hot* and the motherboard has a "features" to throttle something, possibly the CPU, on high temperatures. I tried all the solutions for the problem from here (except the last one, where you mod your mainboard): http://www.overclock.net/t/1202751/amd-fx-cpu-throttling-fixes-please-sticky

...and it would run fine with almost all games, except Battlefield series (reason still unclear). So I exchanged it with my girlfriend's Gigabyte 970A-DS3P, which is lower-end but serves my purposes and doesn't have the throttling.

*it didn't occur to me that 70°C is "very hot", because my former computer was a Shuttle PC (tiny brick of a desktop, with shitty ventilation) and the top CPU temperature was 105°C. It would still run games at this temp, ...just not for too long.

So, yeah, if something similar happens to you, check if the problems start appearing at a certain temperature level (best tool for that: SpeedFan) - for me it was at about 66°C GPU temp.

| improve this answer | |
  • 1
    These periodic FPS drops are typically caused by CPU or GPU throttling. Either because of temperature or in my case because EIST, EPU, C-States, etc. was turned on in UEFI. They can be turned on in the OS power management too, which has the same effect. – inf3rno Mar 31 at 2:23
0

Having had some odd experiences, both as a developer and day-to-day user, with "unexplained" interactions from "the outside world", the first thing I look for (and this has been a winning bet several times) is the antivirus.

With that said, I think you will want to become familiar with ProcDump (http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx).

There are other suggestions here: http://windowsitpro.com/systems-management/got-high-cpu-usage-problems-procdump-em, but besides Process Monitor, I'm not familiar with either.

| improve this answer | |
  • Thanks, will try (ProcDump). For Antivirus: I think I already made an experiment with completely disabling it for an hour, but I will check again. – Florian Golemo Oct 5 '14 at 12:27
  • Okay, I tried antivirus and the problem persists. I also monitored the hard drive and there IS a periodic read/write spike, but the periods don't match. The IO is happening every ~5-7 seconds (SkyDrive.exe writing a pagefile???), whereas the ingame lag happens every 2-3s. Will try out ProcDump next. – Florian Golemo Oct 5 '14 at 20:32
  • I think you can forget the hard drive, you need to focus on the CPU imho. Short writes to the drive, which are anyway cached by the OS (so may be postponed) and made through DMA since '97 or so don't seem relevant. – elder elder Oct 5 '14 at 20:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.