HOWTO: Low-Lag VSYNC ON

EDIT: As of 2019, there is a new RTSS Scan Line Sync mode that is superior to this Low Lag VSYNC ON HOWTO.  Check out this HOWTO on Blur Busters Forums as an alternative.

Right Tool For Right Job: VSYNC ON improves certain games

Often, competitive gaming and eSports often use VSYNC OFF to reduce input latency. Even frame rates above refresh rates can reduce lag further, especially or CS:GO and Quake matches.

However, VSYNC ON is much more enjoyable for certain games/emulators/some console ports which behave much better and more smoothly with VSYNC ON. Also, Motion Blur Reduction such as ULMB can amplify visibility of stutter/jitter. By using VSYNC ON, you can easily reduce or solve these problems.

Unfortunately, VSYNC ON can often add input lag! What do we do?
The great news is there are ways to reduce VSYNC ON input lag!

Low-Lag “VSYNC ON” for Common Monitors

Several tests were done by Jorim Tapley, RealNC and others in the Blur Busters Forums, testing multiple methods of frame-rate capping to find the lowest-lag, stutterless method of reducing VSYNC ON input lag. This tip applies if you don’t have a variable refresh rate (VRR) monitor such as G-SYNC or FreeSync.

We found that only one frame-rate capping software, called RTSS (RivaTuner Statistics Server) was able to reduce VSYNC ON lag without adding visible stutters. Other frame rate limiter software (in-game, NVInspector, etc) were not as accurate.

  1. Download and install RTSS.
  2. Go to TestUFO Refresh Rate and measure your exact refresh rate to at least 3 decimal digits.
  3. Subtract 0.01 from this number.
  4. Launch RTSS, click on the “Framerate limit” number.
  5. Type the new number, rounded down to nearest two digits.
    For example, if TestUFO Refresh Rate said “143.995”, then enter “143.98”
  6. Use “VSYNC ON” or “NVIDIA Fast Sync” or “AMD Enhanced Sync” for that specific game.
    Fast Sync and Enhanced Sync may sometimes stutter less than VSYNC ON with frame rate caps.

Technical explanation: This avoids frame buffers from piling up to create input lag. In addition, stutters are avoided, thanks to RTSS microsecond-accurate frame rate capping precision. High speed video tests confirmed a reduced lag of approximately 1 to 2 less refresh cycles less input lag relative to VSYNC ON. Also, RealNC from Blur Busters Forums has a longer HOWTO on Guru3D Forums on this technique, including additional tips on how to edit your RTSS configuration file, and setting pre-rendered frames to 1 in NVInspector.

Troubleshooting Stutter Problems with Above

Follow this section only if you’re getting stutter problems with the low-lag VSYNC ON trick.
Sometimes, different numbers may work better for Step 3 above.

  • The RTSS recommended 0.01 number difference (between Hz and fps) is simply a starting point. Experiences will vary per system and per game engine.
    Example, if you’re running at “119.990Hz”, try a cap of “119.980 Hz”
  • Verify your game is running at the correct refresh rate.
    Sometimes games will run at a refresh rate different than the Windows desktop.
  • NVIDIA “Fast Sync” or AMD “Enhanced Sync” can be experimented with, instead of “VSYNC ON”, to allow tighter frame rate capping for the purposes of avoiding stutters. They already help lag, but they may stutter badly in certain games unless the frame-rate is capped.
  • If your GPU is not fast enough to run at full frame rate during VSYNC ON,
    …try a lower refresh rate
    …adjust game detail/AA
    …switch to a G-SYNC monitor or FreeSync monitor
    …and/or upgrade your GPU.
  • The faster and more precise the system, the smaller the difference can be before problems happen. Some users are using differences as little as 0.005 and others are using much bigger numbers such as 0.1.
  • In certain games, tighter differences (e.g. 0.001) may run perfect-smooth for several minutes, before having a long sustained surge of stutters. (Less frequent, but very severe, sustained stutter surges). Using “Fast Sync” instead of “VSYNC ON” may reduce this into a single micro stutter.
  • In certain games, looser differences may run perfect-smooth for a shorter time period and then have one nearly-invisible micro stutter.  (More frequent, but very tiny stutters).
  • Most systems already have high precision clocks (HPET, TSC, etc). However, if you intentionally manually disabled this setting in your BIOS, turn it back on. High-precision clocks are needed for microsecond-accurate stutter-free frame rate capping.
  • Experiments have been made with predictive frame rate capping, which is a feature of GeDoSaTo open-source software, to eliminate the need to follow these instructions for precision differences between fps and Hz. Predictive frame rate capping is not yet a feature of RTSS (though it should be!) as it is a worthwhile feature according to input lag tests. Some, not all, emulator software also have similar custom syncing options that reduce input lag.

Experiment until you get acceptable low-lag VSYNC ON behaviour.

Better Low-Lag “VSYNC ON” for G-SYNC and FreeSync Monitors

  1. For fixed-Hz or strobed operation, there’s a new RTSS feature called RTSS Scanline Sync as an alternative low-latency VSYNC method.
  2. A variable refresh rate (VRR) monitor is a much easier low-lag way to get perfect “VSYNC ON” motion.

Software with internal frame-rate caps (e.g. emulators, video players, framerate-limited games) will run very smoothly and at very low latencies.  Everything can be made to look stutter-free “VSYNC ON smooth” at all frame rates on a G-SYNC and FreeSync monitor — changes in frame rates can occur without stutter! See animation demo of stutter-free changes to frame rates. A frame rate of 47 fps automatically means the monitor is running at 47 Hertz, and without stuttering or tearing.

Even VRR also helps with fixed-frame-rate games, console ports, emulators, by synchronizing frame rates with less lag than ordinary “VSYNC ON” — and adds the ability to reduce/erase the visibility of single-frame-drop stutters that can still happen with VSYNC ON.

  • Make sure you’re running on a VRR monitor such as a G-SYNC monitor or FreeSync monitor.
  • For games, many work fine in VRR mode by default.
    Certain games need you to turn on/off “VSYNC” in the game to trick G-SYNC or FreeSync to work. 
  • For emulators, configure it into Direct3D/OpenGL mode.
  • For video players, use a Direct3D-capable video player such as SMPlayer.

For specific software (e.g. emulators, video players), you will need to configure it to run in a Direct3D/OpenGL mode in order to take advantage of G-SYNC or FreeSync.

Other Ways of Avoiding Lag with VRR Displays

We were the first site in the world to discover an input-lag-reducing trick for G-SYNC in year 2013-2014 via G-SYNC Preview #2. We did further extensive tests in 2017 on a 240Hz G-SYNC monitor as part of G-SYNC 101: Input Lag Tests.

If you want to use the highest possible frame rates without lag on G-SYNC and FreeSync displays:

  • Use  a framerate cap of a few frames per second below refresh rate.
    Example: 138 fps cap on 144 Hz monitors.
    Example: 235 fps cap on 240 Hz monitors.
  • In-game frame rate capping has less lag than external frame rate cap software such as RTSS or NVInspector. VRR can successfully runs smooth with approximate/imprecise frame rate caps.
    Example: fps_max 235 in a Source Engine game (Half Life 2, CS:GO, etc)
  • If there is no in-game frame rate cap capability, use RTSS which was tested to be lower lag than NVInspector and other capping utilities.

That way, frame rates can fall harmlessly without visible stutter. And when running flat-out at full frame rate, no unnecessary frame rate buffers pile up. This avoids creating unwanted “VSYNC ON” level of input lag whenever hitting maximum frame rates during uncapped VRR game play.

Also, fixed frame rate operation has less lag at higher refresh rates (e.g. 60fps @ 240Hz) than lower (e.g. 60fps @ 144Hz or 60Hz). 60fps on high-Hz VRR looks visually stutterless & smooth as 60fps VSYNC ON, except with less input due to faster refresh cycle scan-out per frame.

Full Flexibility for Competitive Gaming

All VRR displays also supports VSYNC OFF too. This includes all G-SYNC monitors and FreeSync monitors.

There are people who play CS:GO with VSYNC OFF, and switches to using G-SYNC or FreeSync for other games for better, smooth motion without stutters or tearing.

If you have a very high refresh rate (240Hz), the input lag of G-SYNC becomes similarly low as VSYNC OFF (unlike at 60Hz where the difference is much bigger). 240Hz VRR is capable of eSports-quality gaming. By adding sheer Hertz, VRR becomes suitable for professional gaming.

Other Articles about Input Lag


58 Comments For “HOWTO: Low-Lag VSYNC ON”

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Sort by:   newest | oldest | most liked
beton_kruglosu_totchno
Member
beton_kruglosu_totchno

What’s the lowest theoretical latency this method can achieve? For example, scanline sync in RTSS can only go as low as 16.(6) ms on a 60Hz LCD.

skyisthelimit
Member
skyisthelimit

Hello,
im using dyac Premium feature ,monitor is 99.999hz, RTSS 99.989 framecap limit ive set. Since the dyac feature needs the frame rate and in game game frame rate to be the same( otherwise double image can occur), the values of RTTS( 99.989) is fine ? or should i change it to 99.999?
What im trying to do here is avoid double image effect thats all.
thank you in advance.

TarFaerhing
Member
TarFaerhing

in my exp Rivatuner doesn’t do anything to the frametimes, the ingame locks work exactly as RTSS (despite rivatuner OSD graph showing a flat line), meanwhile CapframeX shows the same graph with both fps locks, the only one able to actually improve frametimes is SpecialK, why is the rivatuner graph showing something different than Capframex?

drameloide
Member
drameloide

i think cap with rivatuner at 0.01 below refresh rate is the same of vsync ceilling and “1” “prerender ahead” or “flip queue size” because rivatuner fps limit introduces 1 RA of input lag. what do you think about this guys?

drameloide
Member
drameloide

The big question is, Why Nvidia or amd dont implement this by default on vsync?, why vsync is by default programmed for limit frames above the monitor refresh rate?, in fact nvidia with his new NULL in ULTRA mode they capped x frames under refresh rate for gsync monitor, why nvidia dont modify vsync for generate framerates under monitor refresh rate like this guide, ?? rather, why was it not consider this when vsync was created?

beton_kruglosu_totchno
Member
beton_kruglosu_totchno

>Why

It requires competence and involvement to understand how simple approaches are overlooked for decades. Refer to integer scaling as an example – took ages to implement it.

wpDiscuz