"Framerate Hitching" as described by Nvidia Dev Document

avi1212avi

Commendable
Mar 14, 2016
3
0
1,510
Hello!, Thanks for stopping by.

My system specification

CPU : I5-6600
GPU : GTX 1060 Gainward 6GB
RAM : DDR4 8x2 HyperX 2133 (Module Part Number : KHX2133C14/8G, Ordered from seller HX421C14FB2K2-16 Did he cheat?:O)
SSD+HDD : SanDisk 240GB, WD 1TB HDD (Page file here 16gb min,max)
MB : Asus B-150M-K
Sound Card : Xonar DGX (problem occurs even w/o it)

Game : Combat Arms (Light FPS game), did not try any additional game.

Problem Description : Game pretty randomly hangs for 450ms~ and continue as normal, might run smooth sometimes, occurs even on low settings as well, FPS generally is Stable.

Tried DDU'ing the driver, Canceling Page File/Putting it on SSD, Prime95 CPU, FurMark GPU.
HWMonitor showed voltages did not flinch (Minimum voltages drops), although I don't know how trustworthy is that report.

Stumbled upon This doc
https://developer.nvidia.com/sites/default/files/akamai/gameworks/CN/Stuttering_Analysis_EN.pdf

I'm pretty certain my answer lies somewhere inside it but it meant for developers and I found myself lost pretty quick reading thru it.

Monitoring with MSI Afterburn yielded interesting results, appears that[strike] my FPS tank on exactly 100 right before the "stutter" for about a second, and [/strike]"frametime" increase from a normal 4-5ms to 10~ ms during that "tank" period, and then comes the stutter itself which lasts around 450ms (frametime), GPU activity shows 0-1 during that period, then fps gradually get back to normal.

Some things to note,

  • 1. This is an old game, which was developed in 07' 08'.
    2. There are slight decrease in some CPU core usage when the stutter happen. (Might be because it waits for the GPU to resume work so it can push more instructions? just a wild guess)
    3. In the MSI+RibaTuner On Screen Display FPS is represented as D3D9, as far as I understood from the doc above that refers to Directx 9, the doc above on page 28 talks about some issue that might cause my problem on Directx 9.
    4. I've opened a case in front of Nvidia, and Combat Arms.
here are some screenshots
http://prntscr.com/dnpqs8
http://prntscr.com/dnpxbm
(Second bump in "Frametime" caused by minimizing the game, not a hitch)

TL;DR - [strike]FPS tank at 100 sharp for about a second then [/strike]GPU hits 0 activity which causes the 450ms "Freeze" (lag in frametime), tested only in a game named Combat Arms.
 
I took a quick look at that document, it addresses one type of solution I know sometimes works- locking your framerate. Frame timing can cause this type of thing, you might be getting a high framerate but if the timing between frames is 'off' then the game can seem like it stutters. This can sometimes be cured be locking your framerate to a fixed number. By only having to produce a fixed number of frames, the videocard can generate them at more balanced timings. The downside is if your system is capable of a higher average framerate than the fixed number you lose any chance to benefit from it. Let's say your system could do 80fps average on that game, but it fluctuates from 65-95fps. You cap it at 60 and you'll never see more than 60fps.
 

avi1212avi

Commendable
Mar 14, 2016
3
0
1,510
gameworks.nvidia.com
The Many Faces of Stutter
• Framerate hitching
– Appearance: every so often, the framerate freezes
and resumes
– Possible causes: shader compilation, resource
updating and/or vidmem paging

• Micro-stuttering
– Appearance: the frames-per-second is high, but the
overall feeling is laggy
– Possible causes: highly uneven duration of each frame

• Timing discrepancy
– Appearance: framerate is fine, but animation and
simulation are choppy
– Possible causes: incorrectly measured time interval
and frame queuing

I find my problem among the first category, don't think its about the frames being de-synced, your description fits the 2nd/3rd category, if it were de-synced I would feel choppiness and constant stutter, not a 450ms freeze here and there.

Nevertheless, my game does not provide the option to cap fps, but I've tried fast sync, half sync, full sync, etc etc..

Thanks for the insight tho.

Edit : Capped my FPS to 60 using RivaTuner - Issue persists.