• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

Why do fps drop in steps 60, 30, 15 etc

Soldato
Joined
15 Sep 2008
Posts
3,061
Guys, somebody posted in a thread but I can't find it again - the reason why graphics fps sometimes drop from 60 to 30 to 15 in steps like that.

Sorry, I know it's probably been covered.
 
Simplest way to explain it tho not 100% accurate: when you lock vsync at 60Hz then the interval between each frame at the minimum is 16.66ms. When using VSync the screen will only render when a complete image is ready to be rendered so when the PC is capable of rendering at 60 or more fps there is always a complete new frame ready to be rendered. When the PC isn't capable of rendering fast enough to keep producing new frames at 60 or more fps then it re-uses the last frame and you have to wait an additional 16.66ms before it can start drawing a new frame if one is available.

So if your only churning out 50fps you get 2x 16.66m gaps between new frames being rendered 1000ms (1 second) divided by 33.32 = 30 frames per second. If there still isn't a new frame ready you have to wait an additional 16.66ms which means 1000/49.98ms = 20fps and so on.
 
Thanks Rroff, I think I get it. When you say the pc isn't capable of rendering, you mean the gpu? What if the gpu usage isn't 100% but something like 60% when the drops ocurr? I'm not entirely sure (I'll check it in a minute with Afterburner) when my frames drop from 60 to 45 then 30, my gpu usage isn't 100%, more like 55 - 60%.

I'll go see if I can get it to do it again and post an image of the Afterburner trace.
 
Depends on the whole PC - the CPU as well as the GPU are involved in building the next frame to render so if the PC as a whole can't produce a new frame in time for the next new frame to start rendering it will cause a drop in the actual rendered fps and increased input latency.
 
Simplest way to explain it tho not 100% accurate: when you lock vsync at 60Hz then the interval between each frame at the minimum is 16.66ms. When using VSync the screen will only render when a complete image is ready to be rendered so when the PC is capable of rendering at 60 or more fps there is always a complete new frame ready to be rendered. When the PC isn't capable of rendering fast enough to keep producing new frames at 60 or more fps then it re-uses the last frame and you have to wait an additional 16.66ms before it can start drawing a new frame if one is available.

So if your only churning out 50fps you get 2x 16.66m gaps between new frames being rendered 1000ms (1 second) divided by 33.32 = 30 frames per second. If there still isn't a new frame ready you have to wait an additional 16.66ms which means 1000/49.98ms = 20fps and so on.

This is why most new games use triple buffering with vsync, rendering a third frame allows to counter these issues.

On the other hand, it introduces an input lag.
 
I really don't understand this :D

Sometimes in the odd game I see this behavour, locked at 60fps then down to 30fps, back up to 60fps. But in the main I just don't see it.

Playing batman AC for example I see my fps going from a steady 60 down to 55, 49, 58 etc, I don't have triple buffering enabled in the Nvidia CP and I do have vsync enabled.

Any ideas?
 
Both are satan. FPS limiting is where it's at ;) No point going over 60 FPS if your screen is only capable of 60hz.
 
Probably a daft question, but how do you limit fps without using vsync?

is there some 3rd party software i need?

MSI Afterburner (and any software based on it) or Nvidia Control Panel/nvidia Inspector.

Yes afterburner does it, also latest Nvidia drivers with adaptive vsync

Adaptive vsync uses vsync to cap fps at your refresh rate so it's not a relevant answer.

I really don't understand this :D

Sometimes in the odd game I see this behavour, locked at 60fps then down to 30fps, back up to 60fps. But in the main I just don't see it.

Playing batman AC for example I see my fps going from a steady 60 down to 55, 49, 58 etc, I don't have triple buffering enabled in the Nvidia CP and I do have vsync enabled.

Any ideas?

Like I said, most games have triple buffering implemented by default nowadays.
 
I agree, tearing is terrible!

I can understand the fps dropping low when the gpu can't keep up, but not when it's only being used 50%, that's not efficient. I'll post the traces that show this pretty clearly when I get back from work.

I didn't know Afterburner had a vsync option, where is it? I'll need to try that out instead of in game and nvidia cp.
 
I can understand the fps dropping low when the gpu can't keep up, but not when it's only being used 50%, that's not efficient. I'll post the traces that show this pretty clearly when I get back from work.

I didn't know Afterburner had a vsync option, where is it? I'll need to try that out instead of in game and nvidia cp.

For starters, the game could be CPU-limited in those scenarios. Or you simple have a driver issue. Or there's another bottleneck somewhere that causes the sudden loss in fps.

Vsync doesn't have a vsync option, where did you read this?

There's no difference between using FPS limiter in Afterburner or drivers. And yes, it will still cause tearing because it's not vsync.

What version of nvidia drivers is this in (can't remember what I'm running) and is it enable by default? It could be this giving grief?

300+ drivers. It's not enable by default and you clearly don't understand how it works since it has nothing to do with your issue.

Moreover, if you've read through my posts in this thread, you'd get your answer. Lack of triple buffering when vsync is on causes that.

/thread
 
For starters, the game could be CPU-limited in those scenarios. Or you simple have a driver issue. Or there's another bottleneck somewhere that causes the sudden loss in fps.

Definetly not cpu limited, (i7 2600k @ 4.4) nowhere near max utilisation or thermal limit, infact only 45C. It could be that damn PCIE Revodrive SSD hogging the PCIE bus but since nothings loading or saving I don't think so. Incidently the vram loaded is only 600mb of the 570's 1.2gb. I'm starting to think it's the game badly optimised.

Vsync doesn't have a vsync option, where did you read this?
I think you mean Afterburner? straxusii mentioned it earlier in the thread.



There's no difference between using FPS limiter in Afterburner or drivers. And yes, it will still cause tearing because it's not vsync.

Vsync doesn't cause tearing, we know that....



300+ drivers. It's not enable by default and you clearly don't understand how it works since it has nothing to do with your issue.

Moreover, if you've read through my posts in this thread, you'd get your answer. Lack of triple buffering when vsync is on causes that.

No, I clearly don't understand what is happening in my instance because I asked this forum. Smart ass.


Have we got to the root of the problem? No. Thanks for your help and everything, but until I've got a reason and hopefuly a solution to the problem it still exists and is not resolved.
 
Definetly not cpu limited, (i7 2600k @ 4.4) nowhere near max utilisation or thermal limit, infact only 45C. It could be that damn PCIE Revodrive SSD hogging the PCIE bus but since nothings loading or saving I don't think so. Incidently the vram loaded is only 600mb of the 570's 1.2gb. I'm starting to think it's the game badly optimised.

So it's not your CPU, do a clean install of drivers and make sure that some caching isn't in the works that could slow down your system for a while.

I think you mean Afterburner? straxusii mentioned it earlier in the thread.

Yes, I meant Afterburner, and no, straxusii didn't say anything about MSI Afterburner having an option for enabling vsync.

Vsync doesn't cause tearing, we know that....

That's not what I said. You're confusing Vertical Synchronization and FPS Limiter, both do different things and have different outcomes. Limiting FPS to or below the refresh rate will still cause tearing (albeit reduce it by a fair margin) and that's the only option you will find in Afterburner.
No, I clearly don't understand what is happening in my instance because I asked this forum. Smart ass.

That and you also didn't understand what I've written.

Jumps from 60-45-30-15 are caused by Vertical Synchronization with double buffering, it has been explained by Rroff and me in this thread. Unless there's another underlying issue that causes it, that's your problem and it's easy to fix with something like D3DOverrider or nvidia Inspector tool.

Have we got to the root of the problem? No. Thanks for your help and everything, but until I've got a reason and hopefuly a solution to the problem it still exists and is not resolved.

This is going nowhere since you don't take anyone's response in this thread seriously.

Try running D3DOverrider (enable Force Vsync and Triple Buffering) with the game that is causing those fps fluctuations and see if that resolves the problem. Then try turning Vsync off entirely, even force it off on the drivers level, see if the GPU usage changes dramatically. Then, if the previous two testing methods fail, do a clean drivers install. Then look for other bottlenecks.

Also, read my posts carefully, if you don't understand something clearly, ask, I'll be glad to help, but don't make assumptions that you know what you're talking about when you really don't (like replying to my post regarding Afterburner and fps limiter, when you're confusing it with vsync, etc.).
 
Last edited:
You want one of the 300 series Nvidia drivers. Forget all the third party nonsense.

Go into the Nvidia Control Panel, Manage 3D settings. For each game enable Adaptive Vertical sync at the bottom of the list.
 
You want one of the 300 series Nvidia drivers. Forget all the third party nonsense.

Go into the Nvidia Control Panel, Manage 3D settings. For each game enable Adaptive Vertical sync at the bottom of the list.

Adaptive Vsync doesn't get rid of all the tearing though.
 
Back
Top Bottom