• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Vsync massively lowers frame rate

In the game Prince of Persia Sands of Time, I found that I was getting a frame rate of either 42 or, at times, 28, and these didn't vary.

So I tried turning off vsync, and my frame rate now averages about 60, although it goes anywhere between 35 and 75 or so depending on what's going on.

It turns out that Vsync sets my frame rate to either 85, which is my monitor's refresh rate, or some fraction of it. So if my graphics card can do 85 frames per second or more, than I get 85, and no more. If the frame rate drops down below 85, it drops all the way down to half of 85, which is 42. If the frame rate drops below 42, then it drops all the way to 1/3 of 85, which is 28.

And this is extremely noticeable. With vsync on, the framerate will always be 85, 42, or 28, in this game. Turn it off, and the framerate wanders up and down normally based on how difficult a time the graphics card, cpu, etc are having handling whatever's going on in the game.

But this doesn't happen in all games. Why does vsync cap the frame rate at fractions of your refresh rate in some games, but not others?

With vsync off, supposedly there will be "tearing", which I very rarely notice. But I certainly notice my frame rate going down from 60 to 42, or (even worse) from 40 to 28.

I have a geforce fx 5900, amd 2800, 512 megs pc 3200, windows xp.
 
Crappy writing of the game?
Vsync does not set your framerate. Until the monitor is refreshed, it does not display a frame. The other frames and partial frames are being drawn, you just don't see them (unless there's some driver or game engine magic keeping them from being drawn). It's either a driver or game issue--I've never seen this happen, never had crappy performance when I shouldn't, and I try to keep Vsync on all the time, and would be pissed enough to return the game if that happened to me.
 
But this doesn't happen in all games. Why does vsync cap the frame rate at fractions of your refresh rate in some games, but not others?

VSync forces the frame buffer refreshes to line up with monitor refreshes -- it doesn't 'cap' it per se, although obviously it can't draw frames faster than the monitor is refreshing. So, in theory, you can have any integer number of frames per second that is less than or equal to your monitor's refresh rate.

However, if the game is not coded properly (or has hit upon some sort of DirectX/OpenGL/driver bug), it can have the behavior you're describing (where you can only get 85, 42, 28, 14, etc. FPS). The game engine is probably waiting for the frame buffer to hit the display before it starts rendering the next frame (this is simpler to code, and I'm not surprised by this behavior in a console port). It *should* render asynchronously, and not wait for the monitor to refresh -- this will let you have intermediate frame rates.
 
For me, it always lowered my framerates by 8-10 and that's a good amount needed, so I switch it off.
 
Why does vsync cap the frame rate at fractions of your refresh rate in some games, but not others?
Usually it depends on the performance characteristics and fluctuations of the game. If your framerate is frequently slightly lower than your refresh rate then you'll often get performance equal to half or even one third of your refresh rate. In other games where your performance is higher it won't happen as much.

Crappy writing of the game?
However, if the game is not coded properly (or has hit upon some sort of DirectX/OpenGL/driver bug),
It has absolutely nothing to do with the game code; it has everything to do with vsync. Not only that but vsync is a function of the driver, not the game.

the problem is a lack of triple buffering.
Triple buffering doesn't guarantee a fix for it either, it merely reduces the chance of if happening. Not to mention that it also increases input lag by up to 50%.
 
Originally posted by: BFG10K
Why does vsync cap the frame rate at fractions of your refresh rate in some games, but not others?
Usually it depends on the performance characteristics and fluctuations of the game. If your framerate is frequently slightly lower than your refresh rate then you'll often get performance equal to half or even one third of your refresh rate. In other games where your performance is higher it won't happen as much.

Crappy writing of the game?
However, if the game is not coded properly (or has hit upon some sort of DirectX/OpenGL/driver bug),
It has absolutely nothing to do with the game code; it has everything to do with vsync. Not only that but vsync is a function of the driver, not the game.

the problem is a lack of triple buffering.
Triple buffering doesn't guarantee a fix for it either, it merely reduces the chance of if happening. Not to mention that it also increases input lag by up to 50%.

Is there any solution to this? I'm experiencing the same thing with Colin Mcrae 04, where certain parts of the track would render above 85FPS -> smooth, then some parts drop below 85FPS = 42FPS due to this vsync "bug".

Was using 53.03 drivers, then tried 56.72 drivers, same thing 🙁
 
Basically, is there a way to "cap" the max FPS to 85Hz to prevent image tearing without causing this vsync 1/2 or 1/3 performance drop issue?
 
You can cap your FPS if you know it will never drop below your refresh rate.

Otherwise, you have to disable v-sync, and suffer through some tearing, or you will always get massive frame rate loss when your FPS dips below your refresh rate.

You have no other choices. 🙁
 
So, would it be worth it for me to turn VSync off with a 9800 Pro and an LCD monitor? I'm not entirely clear on how much of a performance hit I am taking with it on...
 
If your LCD resolution is fairly high, around 1600x1200, I would disable v-sync.
It really depends on what games you play, and how they tax your system.
 
This is just a suggestion, but why not run games with lower settings so that you always get at least 60FPS? That would eliminate the problem. I never reccomend disabling vsync as it eliminates tearing which I find very irritating.
 
Back
Top