VSync appears to cause excessive fps lag

idunnololz

Reputable
May 10, 2014
6
0
4,510
I noticed unreasonable increase in FPS lag whenever V sync is turned on in several of the games I play. Although I know that turning on v sync will add some FPS lag, I did not expect it to add this much. I will give an example of what I mean by 'unreasonable' lag for instance, with Vsync off, I can play Bioshock with max setting at 1920x1080 resolution with no noticeable lag what so ever (for some reason, Fraps refuses to display the fps for Bioshock so i can't give a fps reading) but as soon as I turn on v sync I can notice lag even playing at medium settings at 1366x768. For the game WarFrame, I get 200 fps at 1920x1080 resolution at medium settings and no noticeable lag. With V sync on, I get 60 fps but I can notice a huge amount of lag.

The system that I ran these tests on is a lenovo Y510P with:
CPU: i7-4700MQ
HD: 480gb SSD
Ram: 8GB
OS: Windows 7 64-bit
GPU: NVIDIA GT 755M

Update:
I asked a friend to try playing Bioshock on his laptop and he replied that the game ran smoothly with high graphics at 1366x768 resolution even with a NVIDIA 425M graphics card. Clearly something is wrong...
 

cabudinen

Honorable
Apr 25, 2013
496
0
11,160
This happens when your fps go below 60 lets say 55, it will automatically lower to 30 fps, if you can't achieve 30 fps with your system it will lower again to 24 fps to stop tearing. Download D3Doverrider disable in game vsync and enable vsync and triple buffering there. That way you can have 48 FPS without the game lowering to 30.
 

idunnololz

Reputable
May 10, 2014
6
0
4,510


I don't. It's just a nice to have for some games where I don't want visual tearing and wouldn't mind the extra input lag.
 

idunnololz

Reputable
May 10, 2014
6
0
4,510


Yes, not terribly but I can notice it. However it is an expected drawback of disabling V sync.

 


You could get a monitor with an HDMI cable and probably use the video out on your laptop and not experience screen tearing.

Screen tearing is cause your laptops monitor is kind of a POS.
 

Damn_Rookie

Reputable
Feb 21, 2014
791
0
5,660


What? Screen tearing isn't down to the monitor being a "POS", as you put it. Screen tearing is simply a mismatch between the graphics card's variable frame rate and the display's fixed refresh rate. It's a normal artifact of the FPS of the game not matching the refresh frequency of the screen (and there being no triple buffering, or similar, in place), leading to parts of two or more different frames being displayed at the same time.

The only way the monitor is at 'fault' is that it has a fixed refresh rate, like every other LCD monitor, with the exception of the new G-Sync equipped ones.
nvidia-marketing,3-C-413544-3.jpg

(Source 1, source 2)
 


No. Screen tearing will happen equally on any monitor.

The most efficient way to get rid of lag from vsync is to put vsync at your monitor's refresh rate (say, 60hz for example) and then cap 2 fps below the refresh rate (so 58 fps in this case).

I'm not going to go through the essay of why that reduces input lag, but it does.
 

idunnololz

Reputable
May 10, 2014
6
0
4,510
I feel like this post has gotten off topic. Back on topic, for those who suggested ways to mitigate/reduce lag, I feel like that is tackling the wrong problem. With the hardware that I listed that I have listed, I SHOULD be able to play Bioshock with max settings and VSync on with no problem (note that my friend was able to play it with a 425M graphics card which is not nearly as powerful as a 755M). Not only that but the change in performance is too great for this lag to be normal. As with VSync off I can play Bioshock with no fps lag max settings, at 1920x1080, with vsync on, I can't even play it without lag at 1366x768 at medium settings.

Also while playing WarFrame, I did spot an oddity, in that with V sync on, I was still getting 60 fps (indicating I shouldn't be able to see much fps lag if at all) but it felt like I had ~15FPS. This indicates that this might be more of a driver problem. I just wanted to ask around to see if anyone had found a solution or at least an explanation to why this is happening.

BTW before anyone asks, yes I do have the latest graphics drivers.
 


Vsync always causes input lag at default settings, it's not a performance problem. That's why everyone went 'off-topic'.
 

idunnololz

Reputable
May 10, 2014
6
0
4,510
Yes but my friend can play Bioshock with Vsync ON with max settings with no FPS lag with a much less powerful system. On my system, turning on Vsync causes a huge amount of fps lag NOT input lag. I can notice a little bit of input lag but this is not the problem here.

Edit: Also the weird thing is, on war frame, my FPS is 60 with vsync on but the fps feel more like ~15. I feel like this is also true for bioshock but I can't seem to get fraps to work on bioshock so I can't get a fps reading.
 


No such thing as FPS lag at a capped 60 fps, just input lag.

If you have triple buffering enabled, try disabling it. If you have it disabled, try enabling it.
 


That's how Vsync works. What happens is if a new frame isn't ready to be displayed to the screen, the previous one is re-sent. So for example, you could be getting 30 UNIQUE frames per second, but every one would repeat twice, thus giving you the "feel" of 30 FPS, even though, technically, 60 frames are being output.

The farther you get from 60 FPS, the worse Vsync works. Its a hack to avoid screen tearing, nothing more.
 


Close, but not quite. Actually, capping at 35 fps on vsync 60hz minimizes input lag. The extra frames pre-rendered by the CPU artificially inflate that to ~37, and vsync chops it down to 30 with one frame every other refresh, thus causing 1/30 second of input lag.

Capping at 60fps and 60hz, the CPU rendered frames bloat it to ~62 fps. As I understand it, vsync doesn't know what to do with the extra frames and waits a full 60 frame cycle to implement them, causing much more input lag than 30 fps with vsync.
 
Of course, we're oversimplifying by assuming the rate a new frame is created is constant; its actually a lot tougher then that obviously, since FPS is just an average.

"Input Lag" is nothing more then the perceived delay of the user taking an action, and that action being displayed on the screen, or in other words, the latency caused by Vsync. The more consecutive times a single frame gets repeated, the more input lag is perceived.

Taking your example (assuming a constant 35 FPS), yes, you'd essentially get 30 FPS output to the display, and ~33.3ms worth of delay. At a constant 62 FPS, you'd get 16.67ms worth of delay.

The real problem occurs when you jump from ~60 FPS down to ~20 FPS over a period of a couple hundred ms, and you suddenly repeat the same frame 3-4 (or more!) times in a row, which is where Input Lag is most noticeable. That's why its observed more in FPS titles, since they tend to be most prone to FPS swings (explosions!). In this case, you action has been processed internal to the game, but it is not reflected to the user since the frames are so far behind, hence the perception that the input has lagged, when its really the video output.
 

idunnololz

Reputable
May 10, 2014
6
0
4,510
So what you are saying that it is perfectly normal to have 200fps with Vsync off, turn on Vsync and end up with fps that feels like 15? I don't know about you but this does not sound normal at all.
 


Sounds normal to me.

I get capped 60 fps with v-sync turn on, so I leave it off always.
 


I think turning vsync on makes the game *look* like 60 fps, but *feel* like 15-20 fps.

I'm going to mention again my advice that you cap your framerate at like 35 fps or 50 fps using a free program called Dxtory, then enable vsync in your drivers. If that doesn't mostly get rid of the lag caused by vsync, then something really is wrong and we'll have to look at other potential problems.

Also, triple buffered vsync generally has more lag than double buffered. It's a trade off because in certain circumstances triple buffered can actually keep the framerate higher. Generally you only want to use triple-buffering if your graphics card isn't capable of getting 60 fps anyway.