Framerate stutter on 120hz monitor / GTX 670

WeApOn

n00b
Joined
May 30, 2013
Messages
43
Hello [H]ard|Forum,

I recently began experiencing a framerate issue on my PC. When vsync is set to ON, my framerate appears to be jumping between 120fps and 60fps every other second, causing a stutter on my monitor.

Is it normal for an application or game to do this when you cannot maintain the 120fps when vsync is on? It has to set itself to the nearest multiple of your refresh rate? That would make sense, as a few other programs that were running at 200+ fps did not have this stutter issue. However, one of the programs that was experiencing the stutter is a pixel blur testing program, which my GTX 670 should easily be able to handle.

Unfortunately, with vsync off I get terrible screen tearing.

I'm unsure what prompted this to start happening -- I believe I always had "let the 3D application decide" checked off in the NVIDIA Control Panel, and this problem just started happening out of the blue.

I have done a good deal of troubleshooting and have since hit a wall. I'd love any feedback, comments, or suggestions. Let me know if there is anything further I could provide to help clarify my issue.

Thanks!
 
As you said, with V-sync enabled the framerate has to be a multiple of your refresh rate. At 120Hz, when your actual framerate drops to 119 fps or lower, V-sync lowers it to 60 fps.
The solution would be to enable adaptive V-sync in Nvidia control panel. This will disable V-sync when your framerate drops below 120Hz but enable it above this to prevent tearing.
 
To add to this -- My pixel blur test program shows that I am dropping a frame every other second. I think the dropped frame causes me to hit 119fps, which then drops me to 60fps for the next second. Then my framerate returns to 120hz until the next dropped frame, a few seconds later. This loops and is causing my stuttering.

Any ideas?
 
Ah, thanks case sensitive! Perhaps I had that option set before I started seeing this issue. I will try switching to that tonight and see if it helps. However I still feel like something is causing me to drop a frame, and I don't know why.
 
While at 60hz (rather than 120hz), I've seen a similar effect of going from 60 to 30 in the same way. I *hate* playing with vsync off, so that's not an option for me.
One fix is to to use a framerate limiter. I'm not enough of a techie enough to know the specifics, but it's related to trying to display framerates that are too high...even if that sounds backwards.
One of the best ones is the limiter included in MSI Afterburner's OSD. Just set it to 120 and see if that does the trick.
 
make sure your drivers for your monitor are updated, and make sure your refreshrate is properly setup in windows. The V-Sync goes off of that, and limits the framerate, never drops it. Check all Nvidia control panel options and set to auto, and see if you get this.
 
V-sync does drop framerate to the next highest factor of the monitor's refresh rate when the framerate the graphics card can output drops below 120 (or 60) fps. eg. refresh rate of 120Hz, so long as the framerate the card can output stays at 120 fps or more there will be no stutter (the framerate displayed on the screen will be 120 fps) The moment the number of frames processed by the card drops below 120 fps, V-sync will drop the outputted framerate to 60 fps. It does not just limit the framerate, it drops it too.
 
How is the monitor connected? DVI-D?
Correct.

While at 60hz (rather than 120hz), I've seen a similar effect of going from 60 to 30 in the same way. I *hate* playing with vsync off, so that's not an option for me.
One fix is to to use a framerate limiter. I'm not enough of a techie enough to know the specifics, but it's related to trying to display framerates that are too high...even if that sounds backwards.
One of the best ones is the limiter included in MSI Afterburner's OSD. Just set it to 120 and see if that does the trick.
Sounds like we are both experiencing some random frame dropping, that seemingly can't be explained. If one frame drops, it will cause the other 59 (or 29) to be discarded. I think my root issue is finding out what is causing that one frame drop in some applications.

make sure your drivers for your monitor are updated, and make sure your refreshrate is properly setup in windows. The V-Sync goes off of that, and limits the framerate, never drops it. Check all Nvidia control panel options and set to auto, and see if you get this.
I'm actually going to downgrade my drivers in a few moments -- I've heard of some issues with the latest drivers. However I believe this issue existed on the old drivers as well, I only upgraded a few days ago.

As for the Windows framerate, I do make sure to adjust that first and foremost before changing anything in other applications.

V-sync does drop framerate to the next highest factor of the monitor's refresh rate when the framerate the graphics card can output drops below 120 (or 60) fps. eg. refresh rate of 120Hz, so long as the framerate the card can output stays at 120 fps or more there will be no stutter (the framerate displayed on the screen will be 120 fps) The moment the number of frames processed by the card drops below 120 fps, V-sync will drop the outputted framerate to 60 fps. It does not just limit the framerate, it drops it too.
Makes perfect sense. So I just need to find out why this very basic program is dropping this one frame. I could easily hold 500+ fps in this program it's so limited graphically.

This makes sense in games/apps that crush my video card, but not this particular app. I had specifically used this app to test my monitors Lightboost capabilities when in 120hz, and initially it would stay at 120hz without dropping any frames. Something has recently changed that.
 
Does it matter if you set V-Sync in drivers versus in game? Using fraps, even when my FPS dips below 120fps, it doesn't seem to jump to 60 fps.
 
Sounds like we are both experiencing some random frame dropping, that seemingly can't be explained. If one frame drops, it will cause the other 59 (or 29) to be discarded.
They are not discarded. VSYNC ON means "Wait for VSYNC".

If a frame takes more than 1/120th of a second to render, the videogame waits for the beginning of the NEXT REFRESH before displaying the frame. So that means two monitor refreshes pass by, if a frame cannot be rendered during the time period of one monitor refresh.

VSYNC = Vertical Synchronization = the pause between monitor refreshes.
"VSYNC ON" = Wait for the vertical synchronization interval before flipping a frame.

If are old enough to remember old TV's -- you may be familiar with old analog TV's that have a vertical rolling picture. That's a TV that lost its synchronization to the vertical blanking interval -- The VHOLD black bar in a rolling picture is the VSYNC signal becoming visible to the human eye. The VHOLD black bar is the VSYNC signal. It's invisible on digital displays, however.

If you use a monitoring utility to find out your GPU usage (is 100% of GPU power used? 90% of GPU power used?) You will also notice your GPU usage suddenly fall by almost 50% when your framerate falls from 120fps to 60fps. That shows the GPU is now skipping rendering the extra frames, because it's taking two refreshes to display the full frame (necessary without a tearline across a partial frame)

There's a different technique, called "triple buffering" that allows you to prevent these framerate drops, but without the tearing of VSYNC OFF. Triple buffering simply microstutters slightly if frames take longer than a refresh to render, e.g. 120fps falls to 119fps or 118fps. Framerate can degrade more slowly, but triple buffering can also have its own specific issues and it is not always reliably supported by all video games. If you play a videogame with VSYNC OFF in windowed mode, you'll notice it automatically uses triple buffering (no tearing) because of Aero and window compositing managers behaves as the "third buffer".
 
Does it matter if you set V-Sync in drivers versus in game? Using fraps, even when my FPS dips below 120fps, it doesn't seem to jump to 60 fps.

I think NVIDIA will always override the game setting unless I tell it to use 3d application setting. Do you mean that I should try to set it to have the 3d application decide, then set VSync on in a game and see?
 
Here is a .MOV video of the Pixel blur test program showing what is happening to the frames.

Everything said about the card needing to drop to 60fps makes sense, but if you see the program I am running -- there is no reason my GTX 670 shouldn't be able to hold 120fps easily.

Video(25Mb): http://www.sendspace.com/file/uoajpj
 
I think NVIDIA will always override the game setting unless I tell it to use 3d application setting. Do you mean that I should try to set it to have the 3d application decide, then set VSync on in a game and see?

I think so. I don't have driver-enabled vsync, and only am using in-game settings. It doesn't seem to drop for me.
 
Everything said about the card needing to drop to 60fps makes sense, but if you see the program I am running -- there is no reason my GTX 670 shouldn't be able to hold 120fps easily.

Video(25Mb): http://www.sendspace.com/file/uoajpj
Does it happen with other stuff than PixPerAn?
What does Task Manager say for CPU?

Check both your CPU usage (e.g. Task Manager) and GPU usage (e.g. GPUz)?
Often, there's something hogging the CPU or the GPU in the background, that causes these defects to happen. This will become more mysterious if nothing else is hogging either CPU or GPU.
Upgraded utility, new virus scanner, major Dropbox reindexing/syncing, etc.
Also check CPU/GPU temperatures, to see if thermal throttling is occuring (e.g. dying fan).

P.S. PixPerAn has very major problems with some versions of Windows. It runs only 30fps on my machine, alas.
Blur Busters Motion Tests will be coming out soon.
 
Last edited:
I think so. I don't have driver-enabled vsync, and only am using in-game settings. It doesn't seem to drop for me.

Going to try this way now and will report back.

Does it happen with other stuff than PixPerAn?
What does Task Manager say for CPU?

Check both your CPU usage (e.g. Task Manager) and GPU usage (e.g. GPUz)?
Often, there's something hogging the CPU or the GPU in the background, that causes these defects to happen. This will become more mysterious if nothing else is hogging either CPU or GPU.
Upgraded utility, new virus scanner, major Dropbox reindexing/syncing, etc.
Also check CPU/GPU temperatures, to see if thermal throttling is occuring (e.g. dying fan).

P.S. PixPerAn has very major problems with some versions of Windows. It runs only 30fps on my machine, alas.
Blur Busters Motion Tests will be coming out soon.

Consider it mysterious.
GPU & CPU both below 5% in PixPerAn.
GPU temp: 33C
CPU temp: 50C

I have close to nothing running in background. No antivirus is even installed on my PC.

I would question the program itself, but literally two weeks ago it was staying at 120hz. And I was quite sure my software configurations hadn't changed.
 
"Let the 3d Application decide" and "On" both produce the same result.
However, setting VSync OFF results in the PixPerAn program holding my current refresh rate(144hz) without a single drop.
 
"Let the 3d Application decide" and "On" both produce the same result.
However, setting VSync OFF results in the PixPerAn program holding my current refresh rate(144hz) without a single drop.
Very interesting behavior.
This time, I would now blame the program itself. It might have been a driver upgrade that triggered a program bug. PixPerAn is a very old program, written around year 2001.

Out of curiousity, have you tried LightBoost?
You've already seen PHOTOS: Motion blur of 60Hz vs 120Hz vs LightBoost?
With LightBoost, you can score a PixPerAn readability score of 30, and you can read "I NEED MORE SOCKS" text without motion blur, even at Tempo 8.
Google "lightboost" for more info. The new TFT Central article is a good one.
 
Out of curiousity, have you tried LightBoost?

Yes sir. :) That is actually what turned me on to the Blur test program, and what I had been most recently experimenting with before this issue started. I had initially thought that it was actually a Lightboost issue, then I ruled that out. A fellow lightboost member was helping me troubleshoot and mentioned these forums, so here I am. :)


Are you running any Overclocks on your hardware?

I am. Very slight. I have also tried with the overclock off. The fact that the framerate is behaving properly with vsync off makes me think it is a software issue something, or as the other user said, a program issue with the Pixel test.
 
Testing again at 120hz and Lightboost on with the PixPer program and it looks good. I am thinking perhaps I had initially had my VSync set to Off in NVIDIA CP. However I am seeing a screen tearing at the top that I don't recall, so maybe I didn't.

It seems to look good again. The only questionable thing is why I have a few dropped frames in the pixel program sometimes. But I think that may have been there from the start.
 
Sorry for triple post, but on topic of Lightboost -- If I have vsync set to OFF, will I be able to use Lightboost? In Metro:Last Light, I am now getting over 120fps, which I believe is causing Lightboost to turn off. It actually seems to be turning off right when I launch the game.

And I am definitely seeing some dropped frames, even with VSync off everywhere. What could be causing these dropped frames? I am pretty sure this is the main culprit of all my issues. I can tell I am dropping frames because my mouse is not scrolling smoothly, staggering every other second.
 
Hmm for the heck of doing so you could try vsync and then use Afterburner to cap your FPS @ 120 or 119.

I cap my FPS with AB and use vsync on my nVidia and AMD cards. It always seems to help games run a little smoother.

In addition, some titles seem to do better @ just below 100FPS on 120Hz panels. Physics goes berserk in Skyrim in some
places @ 120FPS but if I set a 100Hz refresh rate and use a 99FPS cap with AB, it's fine in all places.
 
Last edited:
Going forward I'd recommend testing out triple buffering with the games you play to see if you can handle the potential slight increase in input lag. However, the option in the NVIDIA control panel only enables it for OpenGL games and does nothing for Direct3D.

To enable it in Direct3D games that don't have native support you need a utility called D3DOverrider. You can use Task Scheduler to have it start with Windows with elevated privileges to avoid UAC prompts when you boot up. D3DOverrider is packaged with RivaTuner. It's been a bit since it was updated, I don't think it works with 64bit native apps yet.

Then again, you can also test with Adaptive Vsync in the NVIDIA drivers to see if that both prevents tearing and maintains a more constant framerate.
 
Thanks for the advice guys. At this point, I think I've isolated my issue to my card randomly dropping a frame or two. It's kind of gone off the track for what I thought the issue was when I originally posed this. I think I am going to start a new thread and re-collect my thoughts. That way I will have a fresh approach at it and hopefully figure out what is happening that way.
 
Read up the [H] article on Adaptive VSync and how it may help you; it also explains why you experience these issues to begin with.
 
Read up the [H] article on Adaptive VSync and how it may help you; it also explains why you experience these issues to begin with.

Is this really related to Vsync though? With Vsync completely off, I should not be seeing any screen stutter, should I? It seems very apparent, and I've never seen it before. Not with my first 120hz monitor, and not with my old 60hz monitors.

There is a stutter delay that should not be happening, and I don't think it should be happening with Vsync on or off.
 
Back
Top