Vsync myth!

pelson

n00b
Joined
Nov 3, 2011
Messages
9
Hello!

Im trying to get my head around this thing, all guides and forums tell you that IF you cant produce 60fps (on 60hz monitor) it will cut in half, in this case, to 30 fps.

How come I have never experienced this? Ive been forcing "vsync on" all the time, and Ive seen it drops below 60 to both 40 and 50 fps thousands of times. Never have I seen this "lock" that people talk about...

Is my computer special or what? Im using 2 x 570 SLI!
 
Frame counters aren't very precise, since they average multiple frame times. Do a FRAPS run logging frame times.
 
You might also have double and triple buffering enabled. But I have to agree with you, I've never had this issue with V-Synch.
 
Hello!

Im trying to get my head around this thing, all guides and forums tell you that IF you cant produce 60fps (on 60hz monitor) it will cut in half, in this case, to 30 fps.

How come I have never experienced this? Ive been forcing "vsync on" all the time, and Ive seen it drops below 60 to both 40 and 50 fps thousands of times. Never have I seen this "lock" that people talk about...

Is my computer special or what? Im using 2 x 570 SLI!

It will be exactly 30 fps if it's 30 fps for the entire sample period. ie, 45 fps could be part 30 and part 60 fps. The degradation goes 60, 30, 20, 15, 12, 10 for classic vsync. Assuming the vsync is working, there's not much to argue about here. If there's a frame every 16.67 ms, and you miss a frame ... that's half the frame rate for those two frame.

SLI is even more special, as it could easily go xFFxFFxFFxFF ... for 40 fps effective (hellooo, micro-stutter!)
 
Last edited:
If triple buffering is enabled (it will be unless you turn it off in the Nvidia control panel, or it is a very old game) you will not see this happen. This was true back in ~2005-2006 when triple buffering was something not commonly used.

The reason is if the card renders directly to the frame buffer, and the monitor is at say 60hz, if it misses having a frame during the refresh cycle it will automatically wait until the next one, cutting your FPS in half. If it can only get a frame out every 3rd refrsh cycle.. etc etc. The post above has the breakdown of how it looks. With double/triple buffering the back buffer can hold either one or two extra pre-rendered frames so the frame buffer always has something to use.
 
Last edited:
If triple buffering is enabled (it will be unless you turn it off in the Nvidia control panel, or it is a very old game) you will not see this happen. This was true back in ~2005-2006 when triple buffering was something not commonly used.

The reason is if the card renders directly to the frame buffer, and the monitor is at say 60hz, if it misses having a frame during the refresh cycle it will automatically wait until the next one, cutting your FPS in half. If it can only get a frame out every 3rd refrsh cycle.. etc etc. The post above has the breakdown of how it looks. With double/triple buffering the back buffer can hold either one or two extra pre-rendered frames so the frame buffer always has something to use.

This is a good answer to my question, it explains it. But still, why does all those guides on the new "Adaptive Vsync" tell you that adaptive is the way to go since it doesnt cut your FPS in half. I mean, if 99% of games today are triple buffered. Its nonsense.

Im playing ARMA 2 DayZ mod right now, Vsync on, and by purpose maxxing the settings to get around 40-50 FPS, and here is my Log on about 10 seconds of gameplay:


FPS
43
40
27
37
31
35
36
40
37
36
32
29
42
40
 
You need to log frame times, not the frame rate. Frame time logging will tell you (roughly) how long each frame takes to swap.
 
This is a good answer to my question, it explains it. But still, why does all those guides on the new "Adaptive Vsync" tell you that adaptive is the way to go since it doesnt cut your FPS in half. I mean, if 99% of games today are triple buffered. Its nonsense.

Im playing ARMA 2 DayZ mod right now, Vsync on, and by purpose maxxing the settings to get around 40-50 FPS, and here is my Log on about 10 seconds of gameplay:


FPS
43
40
27
37
31
35
36
40
37
36
32
29
42
40

This is still not a frame time log, you are logging the average FPS here. FPS and frame time are measuring different things.
 
This is a good answer to my question, it explains it. But still, why does all those guides on the new "Adaptive Vsync" tell you that adaptive is the way to go since it doesnt cut your FPS in half. I mean, if 99% of games today are triple buffered. Its nonsense.

Triple Buffering doesn't eliminate the issue, though it does help. If your card was only able to do 58 FPS for example, that would be 30 with regular Vertical Sync, 45 with Triple Buffering, or 58 with adaptive VSync.
 
Triple Buffering doesn't eliminate the issue, though it does help. If your card was only able to do 58 FPS for example, that would be 30 with regular Vertical Sync, 45 with Triple Buffering, or 58 with adaptive VSync.

Yeah, it won't cut it in half and you have less of a chance to see any cut. Adaptive vsync is a whole different animal, so much technology it makes my head spin! Best solution, add more GPU power [H] style until it doesn't matter. :cool:
 
when you enable V-sync on a video card you are basically forcing it to stop every time the frame buffer is drawn. This takes performance away from the card and this is why you see framerate hits on more demanding games. Less demanding games would be maxed at 60fps
 
The only time Vsync takes performance away from a card is when the card is capable of pushing more than 60 fps (or whatever the refresh rate is). In that case the card can work at less than 100% since instead of sending 100 fps it only has to send 60. With Vsync off the card would continue to work at 100% and send all 100 frames to the monitor.

Edit: Forcing the card to wait to send the frame buffer to the monitor is not the same as taking performance away from the card. It is limiting the performance, but not really taking it away, and it isn't causing the frame rate hits on demanding games - that's just the game being too demanding for the card to render 60 fps. The fact that Vsync then knocks that down to half-refresh isn't the card's fault.
 
when you enable V-sync on a video card you are basically forcing it to stop every time the frame buffer is drawn. This takes performance away from the card and this is why you see framerate hits on more demanding games. Less demanding games would be maxed at 60fps

It can also cause the game to not monitor the mouse/kb as often, causing input lag. Portal 2 runs at a bazillion fps making my 680 loud, but when I enable vsync there's slightly notable input lag (probably both from mouse input and vsync video output.) I haven't tried adaptive vsync yet ...
 
It can also cause the game to not monitor the mouse/kb as often, causing input lag. Portal 2 runs at a bazillion fps making my 680 loud, but when I enable vsync there's slightly notable input lag (probably both from mouse input and vsync video output.) I haven't tried adaptive vsync yet ...

It isn't causing the game to not monitor the kb/mouse as often, it is just increasing the amount of time between your movements and what appears on screen.
 
Last edited:
Windows polls mouse input asynchronously to applications that query the input APIs. The available APIs just spit out data whenever they're asked. In the case of a game ticking at 60 Hz, it may be querying an update to the mouse's position every 60 Hz, but the mouse is still being polled at 250 Hz (or whatever the polling rate is set to).

Many engines don't even poll that frequently. You can pretty easily get away with doing it at 12 or 15 Hz, actually.
 
How come I have never experienced this? Ive been forcing "vsync on" all the time, and Ive seen it drops below 60 to both 40 and 50 fps thousands of times. Never have I seen this "lock" that people talk about...
It doesn't happen in SLI.
 
^ agree!

I only recently noticed this, but I'm very happy about it actually. No need for triple buffering in SLI apparently.
 
If triple buffering is enabled (it will be unless you turn it off in the Nvidia control panel, or it is a very old game) you will not see this happen.
Triple Buffering in the control panel is an OpenGL setting. If you want to force it, you need D3DOverrider. And I don't think I've seen more than 3-4 games in the past decade with built-in support for it.

Triple Buffering doesn't eliminate the issue...
Yeah, it does.
 
Let me get this clear.

I have a 120hz panel. I have a GTX680 GPU. Most of my games are MMOs and run in the vicinity of 60fps to 90fps. Some less demanding games run at 110-120fps (SWTOR for example, runs well but is limited to 110fps by the engine itself and spends most of it's time between 90fps and 110fps (maxxed).

That said, should I have Adaptive vsync on, or vsync or no vsync ? And what should I be running for triple buffering ? I want smooth gameplay/fps/turning with minimal tearing if possible. What's the right combo for my system ? ATM, vync is ON globally (plain vsync) and triple buffering is OFF globally.

1000
 
Let me get this clear.

I have a 120hz panel. I have a GTX680 GPU. Most of my games are MMOs and run in the vicinity of 60fps to 90fps. Some less demanding games run at 110-120fps (SWTOR for example, runs well but is limited to 110fps by the engine itself and spends most of it's time between 90fps and 110fps (maxxed).

That said, should I have Adaptive vsync on, or vsync or no vsync ? And what should I be running for triple buffering ? I want smooth gameplay/fps/turning with minimal tearing if possible. What's the right combo for my system ? ATM, vync is ON globally (plain vsync) and triple buffering is OFF globally.

1000

You should turn Vsync off. Vsync is there to eliminate tearing when the fps runs above your monitor's refresh rate which is not the case for you.
 
Vsync is there to eliminate tearing when the fps runs above your monitor's refresh rate
Vsync is there to eliminate tearing at all framerates. It's worse at higher framerates, but it's by no means gone at 30fps.

That said, should I have Adaptive vsync on, or vsync or no vsync ? And what should I be running for triple buffering ?
Depends on which bothers you more, the tearing or the input lag. I doubt lag is much of an issue in an MMO, so I'd vote for vsync.

Adaptive will disable vsync whenever you're below 120fps, so it's useless with a 110fps cap. You'll need triple buffering, or you'll be pegged at 60fps. The nVidia triple buffering setting doesn't apply to DirectX; you've got to force it with D3DOverrider.
 
Yeah, it does.

You will absolutely still get frame-rate drops with VSync if you can't maintain 60fps. This is true with double OR triple buffering. Triple Buffering reduces but does not eliminate this effect, as the FPS will still drop to 45. That, of course, is better than dropping to 30 but it's still a drop.

With a framerate average, as most counters are, you would still see values in the 50's as your 60/45/60/45 FPS measurements are averaged out. That doesn't change what is actually happening though.
 
Ok, I'm confused. One guy in this thread writes that only a handfull och games have supported Triple Buffering to date by default, while other write almost ALL games these days support it, hence why I do not experience this fps-cut-in-half phenomen. Whats true?

Another one wrote in this thread that SLI does NOT experice this phenomen, where the FPS cuts in half. That makes very much sense to me, since I've been using SLI for a couple of years. But still, if I disable on card and play a game, I can still get 43 FPS or 54 FPS on that single card in any given game, so it doesnt make sense anyway.

Man, this is some confusing shit.

And what do you mean that my FPS is just an "avarage", i mean, FRAPS FPS counter is lying or what? I have never seen it anytime being stuck at 30.
 
And what do you mean that my FPS is just an "avarage", i mean, FRAPS FPS counter is lying or what? I have never seen it anytime being stuck at 30.
Lying? No. Average? Yes.

What's important is that you not worry about what the frame counter says. You aren't somehow 'beating the system'. If a frame misses the swap interval, it has to wait for the next interval for it to swap with the front buffer. This is an absolutely inescapable reality with vertical sync.
 
Ok, I'm confused. One guy in this thread writes that only a handfull och games have supported Triple Buffering to date by default, while other write almost ALL games these days support it, hence why I do not experience this fps-cut-in-half phenomen. Whats true?

Not all games have the option for Triple Buffering natively.

Solution: Run D3DOverrider and force Triple Buffering for all D3D applications. :cool:
 
Vsync is there to eliminate tearing at all framerates. It's worse at higher framerates, but it's by no means gone at 30fps.


Depends on which bothers you more, the tearing or the input lag. I doubt lag is much of an issue in an MMO, so I'd vote for vsync.

Adaptive will disable vsync whenever you're below 120fps, so it's useless with a 110fps cap. You'll need triple buffering, or you'll be pegged at 60fps. The nVidia triple buffering setting doesn't apply to DirectX; you've got to force it with D3DOverrider.

Actually, if you have a 120Hz monitor, I'd run Adaptive (half-refresh) - that way you get Vsync at anything above 60 fps, so you'd only get tearing when you drop below that. If you run normal adaptive you'd basically be running vsync off since you are hardly ever getting above 120 fps.
 
If its an FPS game. You want no-vysnc, and frame cap at 118-119.

If its an MMO vsync can be nice if you can frame cap.

For me personally vysnc is the devil as it causes input lag.
 
Lying? No. Average? Yes.

What's important is that you not worry about what the frame counter says. You aren't somehow 'beating the system'. If a frame misses the swap interval, it has to wait for the next interval for it to swap with the front buffer. This is an absolutely inescapable reality with vertical sync.

Yes, but still, the guides about Vsync are misleading telling people that your FPS is cut when you cant keep up with 60 FPS. They do not get stuck at 30 FPS. I can get 55 FPS with Vsync on and have almost as a smooth experience. There is no cutting at all whatsoever.

I don't understand the science about fronebuffer and framebuffer, if theres something going on under there that I do not know off if thats what your talking about, My point is, it does not get cut in half for me.
 
Yes, but still, the guides about Vsync are misleading telling people that your FPS is cut when you cant keep up with 60 FPS. They do not get stuck at 30 FPS. I can get 55 FPS with Vsync on and have almost as a smooth experience. There is no cutting at all whatsoever.

I don't understand the science about fronebuffer and framebuffer, if theres something going on under there that I do not know off if thats what your talking about, My point is, it does not get cut in half for me.

Yes it does unless the game is using triple buffering to counteract this fps drop from vsync, but this also adds another frame of input lag.

My rule of thumb is this, if you don't notice screen tearing then don't use vsync and don't use triple buffering. No input lag.

If you wish to eliminate screen tearing and are able to always maintain 60 fps then use vsync and don't use triple buffering. 1 frame lag.

If you wish to eliminate screen tearing and cannot maintain 60 fps then use vsync and triple buffering. 2 frame lag.
 
They do not get stuck at 30 FPS. I can get 55 FPS with Vsync on and have almost as a smooth experience.
Your frame counter is displaying 55 FPS. This doesn't mean anything in particular, as I've explained before. Refer to my previous posts.

Suffice it to say that there's ample information in this thread for a person with any level of technical background, or lack thereof, to come to understanding of the system and why you're witnessing what you are. I don't know what else needs to be said here.
 
You will absolutely still get frame-rate drops with VSync if you can't maintain 60fps. This is true with double OR triple buffering.
You may still take a hit with triple buffering, but you're not pegged at a ratio of your refresh rate, and the hit is certainly less than 25%...

Actually, if you have a 120Hz monitor, I'd run Adaptive (half-refresh) - that way you get Vsync at anything above 60 fps
You get vsync, but vsync at 110fps means you end up at 60.
 
Agree. It is not 45fps as suggested. If you stay still and look at a certain spot and Fraps reports 49fps, it is 49fps, averaging or not. You cannot average 45fps over a second and end up with 49.
 
I don't quite know what to make of this "the workings of swap chains don't matter because FRAPS" mentality, but I know it's something I can't fix.
 
Let me try to explain another way:

There is a difference between the average frame rate over many frames, and what the instantaneous frame rate is between two adjacent frames.

With vsync on, the adjacent frame-to-frame rate is strictly 60/30/20/15/12/10/etc ... however, over 1 second you have many of these (changing content) frames (probably mostly 60 and a few 30), and then it averages out to 52.9 or whatever.

So, when talking frame rate, realize that you need to pick either talking about an average over several frames, or just exactly between two adjacent frames.

Double / triple / thousand frame buffering has no affect on any of the math.
 
Let me try to explain another way:

There is a difference between the average frame rate over many frames, and what the instantaneous frame rate is between two adjacent frames.

With vsync on, the adjacent frame-to-frame rate is strictly 60/30/20/15/12/10/etc ... however, over 1 second you have many of these (changing content) frames (probably mostly 60 and a few 30), and then it averages out to 52.9 or whatever.

So, when talking frame rate, realize that you need to pick either talking about an average over several frames, or just exactly between two adjacent frames.

Double / triple / thousand frame buffering has no affect on any of the math.

Ok, but its very much missleading telling people your FPS (as most people know the term FPS) will be cut in half to 30 and start to stutter, because the diffrence between 59 FPS and 60 FPS is barely noticable for me with Vsync ON, I can even get 40-50 FPS ingame (Fraps) and not even see any stutter like 30 FPS gives.

So I just think this is nonsense to highligh how "good" adaptive AA is.

What Im trying to say is, if I have 40 FPS with Vsync on, I get the exact same smoothness as with 40 FPS and vsync OFF (+tearings)! Thats what im trying to say. If theres something going on under the hood that your referring to, it doesnt have any impact what so ever for me.
 
What Im trying to say is, if I have 40 FPS with Vsync on, I get the exact same smoothness as with 40 FPS and vsync OFF (+tearings)! Thats what im trying to say. If theres something going on under the hood that your referring to, it doesnt have any impact what so ever for me.

If you are getting "40 FPS" with VSync ON, you would almost certainly be getting more FPS in that same situation with VSync off instead.

Triple buffering also increases the load on your VRam. In many cases that might be the reason you are dipping below 60fps in the first place, so using even more VRam with Triple buffering is the last thing you would want.

Depending on the specific implimentation of Triple Buffering, you're also talking about 2 frames of input lag vs 1/0 with Adaptive VSync.

You made this thread asking for information but you seem more interested in believing that you are special somehow. You don't need us to help you pat yourself on the back.
 
Ok, but its very much missleading telling people your FPS (as most people know the term FPS) will be cut in half to 30 and start to stutter
It isn't misleading. If your frame time is 33.33ms, which is what your effective frame time would be if you're using double buffering on a 60 Hz display with vertical sync and if said frame misses the opportunity to swap at the first nearest swap interval but swaps at the following interval, what is your frame rate?

The answer: 30 fps. What does that result in? Jitter. How is any of this misleading?
 
Back
Top