GUIDE: reducing input lag & microstutter

Well it appears to be game engine related and differs for every game. While the method I suggest below will give the lowest latency with tear free or tearing that is not the case in overwatch.

Here is my new guide to the lowest possible input lag in overwatch:
Set the in-game fps limit to your fps. Make sure it doesn’t dip below that value or it will increase input lag (microstutter)…

Original post below. No need to read it now. Use new method above.

First I will go over in-game settings.

-VSYNC
optimal setting: off
benefit of optimal setting: VSYNC typically adds 2 frames of input lag (33.2ms @60 Hz, 20ms @100 Hz, 13.8ms @144 Hz, etc…)
drawback of optimal setting: tearing will occur and gameplay will not feel as smooth, BUT there is an alternative called SSYNC which offers no tearing & smooth gameplay with no additional input lag I will mention later.

-TRIPLE BUFFERING
optimal setting: on* (see below, otherwise set to off)
benefit of optimal setting: required for fast sync method otherwise set to off
drawback of optimal setting: WHEN USING VSYNC it increases input lag but reduces stutter

-REDUCE BUFFERING
optimal setting: on
benefit of optimal setting: reduced input lag
drawback of optimal setting: decreases fps, especially minimum fps, due to increased cpu idle time
note: nvidia control panel has a setting called Maximum pre-rendered frames. I suggest setting this to 1 to achieve the same effect as reduce buffering on because problems have been reported with the in-game setting.

-LIMIT FPS / FRAME RATE CAP
optimal setting: CUSTOM / 300 FPS
benefit of optimal setting: will not interfere with the microsecond accurate display syncing fps limiter RTSS
drawback of optimal setting: none unless you forget to launch RTSS

now I will go over out of game settings

Google RTSS guru3d and grab the latest version of riva tuner statistics server. It is a microsecond accurate display syncing fps limiter, aka an fps limiter that offers
SSYNC(scanline sync). As of this post the latest version is 7.2.3

First, before you configure anything, make sure RTSS is working with overwatch. To do this launch RTSS then launch overwatch, and you should see an fps counter as seen in the example preview in RTSS. My current settings for the fps counter are
On-Screen Display support: on
On-Screen Display rendering mode Raster 3D
On-Screen Display coordinate space: Framebuffer
Show own statistics: on

If you see RTSS’s fps counter then go ahead an hop in a training match, and alt+tab to RTSS. Set the Framerate limit to 0 and set Scanline sync to 1. Alt+tab back to overwatch then swing your mouse left and right quickly. You should see a tearline somewhere on your screen, if you don’t, set Scanline sync to 500 and search again. Pay attention to how much the line vibrates. If it’s pretty much stationary your pc is fast enough to handle your graphics settings. If the line is all over the place then you need to lower your graphic settings (or upgrade your pc lul)

Imagine the images sent from your video card to your monitor as a movie reel. There is a area of black between every picture. You want to move the tear line into the black invisible part. Set the Scanlinesync to slightly above your vertical resolution (for example 1180 on 1080p or 1540 on 1440p) If you see the tearline at the bottom of the screen increase the value, if you see it at the top then decrease the value. Do this until you can’t see it. Now you have no tearing, smooth gameplay, and no additional input lag.

If your pc can achieve twice the framerate as your refresh rate then you can reduce input lag even further ESPECIALLY at 60hz
It may not look like it but Scanline sync is actually a button you can click. If you click it it will cycle through 3 options, Scanline sync, Scaline sync x2, and Scanline sync x/2. Set it to scanline sync x2. Set the value to either 1/5th (or if your pc really is that good 1/10th) less than your vertical resolution. 864 or 972 @ 1080p. Go back to overwatch. You should now have 2 tearlines. One near the bottom of the screen and one near the middle of the screen. The most important thing is to make sure that the bottom tear line does not vibrate below the bottom of the screen. If it does this means microstuttering. Decrease your graphics or the scanline sync value (or upgrade ur pc lul) Once it’s stable go ahead and close overwatch and open upgrade nvidia control panel and enable fast sync, or open amd’s control panel and enable enhanced sync. Now you’ve reduced your input lag by half of a frame. 60hz will have input lag more similar to 120hz.
but tf2sniperguy why do I have to generate 2 frames when it’s only showing every other one, couldn’t the gpu and cpu idle for half of a frame or even any duration? It could even be an automatic variable and just a simple on/off option! It would save electricity and generate less heat too while offering the lowest input lag for every pc!
YES YES & YES. There is somebody working on this very thing at home. It is definitely the future and I assume it will be offered on a driver level. I’m sure if this idea had crossed nvidia or amd they would battle to implement it first, but they are foreheads.

6 Likes

This is really helpful! On my end, the biggest cause of microstuttering is actually Windows updates. For example, many people are being rolled out Windows 1903 which is rife with microstuttering. Windows pushed it on me overnight one night, and Overwatch was nigh unplayable afterwards. If that is the case, reverting back to 1809 (I believe) fixes it quick. You only have 10 days to revert from the update, though, I think! So be quick!

Now these are the in depth guides I come to the forums for.

2 Likes

Add: if for some reason you’ve got a not very good graphics card and a 144Hz monitor and need fps, don’t just set the quality to low, rather go into Advanced Settings and set the render scale to 75%, you’ll be well over 144Hz.

Render scale makes a disproportionate difference by effectively running at much lower resolution.

1 Like

You’re not showing every other frame here, you’re just using half of both. What you’re describing above is just perfectly adjusting the tear so that the top half and bottom half of the screen are always 8ms old instead of 16ms old - that is, the display latches the new frame exactly half way so only half the image ever gets scanned out. You still need the render the updated frames to have this content. The only way you’d save CPU/GPU time here would be to only render half the screen at a time, which would require a lot of enlightenment from many parts of the graphics stack including both the driver and the application, and probably the OS/graphics runtime as well.

Due to the normal variation that most games have (most games do not assume your computer is going to guarantee a minimum framerate), this would be a very hard thing to implement with any accuracy, and missing deadlines by even a fraction of a millisecond with microstutter would result in some very bad image artifacts around the tear. Not to mention some really funky business behind the scenes with the display/presentation stack. This is also assuming this feature is strictly available only to fullscreen exclusive display mode, though to be fair that’s the only time you’d want to do this…

The only people who can take advantage of this are the ones who meet your above requirements, and honestly at that point these people should just go buy a better monitor, if I’m being honest.

And BTW if you dont mind the frame pacing variation and the tearing, simple no-vsync is strictly better than this as well [with respect to latency].

It does show every other frame using the method I mentioned.

Nvidia fast sync and AMD enhanced sync work differently to triple buffered vsync which tries to fill the 2 back buffers then waits to swap the next in queue to the front buffer. Fast sync or enhanced sync are constantly drawing switching between the 2 back buffers and the latest fully drawn image gets swapped to the front buffer. In this case it would always be the 8ms old image.

Just a heads up this setting is now called Low Latency Mode. It has an on/off setting which is the same as before and a new setting called Ultra which Nvidia claims can further reduce input latency by up to 33%.

I always had maximum pre-rendered frames on along with the reduce buffering setting on in game as that’s what most people recommended. I’m not sure if anyone has ever tested out if there’s a difference of having both of them on at the same time.

Windows 1903 update is stable now right ?
And no longer a creators update

Thanks for pointing this out. It’s the same as Maximum pre-rendered frames being 0 but was not offered as an option beforehand. I’m gonna update my drivers and switch to ultra.

1 Like

Pointless if you have a monitor 60 Hz, you wont beat someone same skill as you if he has above 60 Hz.

If two people have 60hz monitors but one is seeing the images earlier he is at an advantage. How is that pointless?

And this works for monitors of any refresh rate.

No it isn’t, you should research it further.

If you adjust your scanline sync rate such that there is one teear down the middle and one tear at the bottom and then rendering at 2x your refresh rate (eg 120fps on 60hz display) then you’re not displaying every other frame. You’re display half of every frame. You’re statement is only true if you are rendering at 2x your framerate with it synchronized to a single scanline at the bottom.

People have reached GM on 30 FPS lol. Also if your framerate is higher than your monitor’s display rate it still reduces input lag.

I would recommend this video first, there’s some weird things going on:

Alas! Something meaningful and helpful in the forums. Thank you!

I think his point is that your guide is not really a replacement for a higher refresh rate display which is superior in every way. theoretically as long as you’re willing to accept the tearing, then standard vsync-off with reduce buffering on is the best you can get. At that point the display itself having a faster refresh will help much more. High refresh rate displays typically also have much better pixel response times.

Well obviously it’s better to get another monitor. But what is more immediately useful and practical? Getting a new monitor, or optimizing the settings for the monitor you currently have?

One option is bound by cash and if you’re still on a 60hz monitor in this day and age, money is most likely an obstacle.

I agree, not everyone can afford a nice monitor and I’m by no means discouraging anyone from optimizing for the best experience they can get on what they have.

I was just stating that I think the underlying point of the comment is that the gains you get by following these instructions are likely fairly minimal for the effort involved, especially considering the hardware requirement necessary to minimize or eliminate the frame pacing variation required to do things like obtaining the half-frame input delay (e.g. 99th percentile at 120fps).

At some point investing in the improved hardware gives such a tremendous benefit that the person’s comment does indeed hold true. If two people do have the same skill then the one with the better display will hold a large benefit.

I disagree with his assertion that it’s pointless, but I do think it has very marginal gains.

That is what nvidia fast sync or amd enhanced sync does…