Should you enable the "Reduce Buffering" option in games like Overwatch?

Discussion in 'Videocards - NVIDIA GeForce' started by EerieEgg, Jul 10, 2019.

  1. EerieEgg

    EerieEgg Member Guru

    Messages:
    162
    Likes Received:
    12
    GPU:
    GTX 1080 Ti
    Hi there guys,

    In games like Overwatch (iirc WoW also has a setting like this as do several other games I've played), there is a setting called "Reduce Buffering" or some such similar name in other titles.

    My understanding (correct me I'm wrong) is that this sets the "Max Prerendered Frames" value from the Nvidia control panel (Flipqueue in AMD iirc) to 1 (the minimum available value is my understanding).

    I've done a decent amount of experimenting with this setting -- have tried forcing it to 1 or 2 globally in the past, but what I observed was that it was common to experience a lot of noticeable framerate hitching and stutter when I changed this from "Let the 3D Application decide" (the default) to 1. And that's with an 8700K + 1080 Ti @ stock clocks.

    Some games (like DOOM 2016) appeared to work fine though for the most part -- even with this forced to 1.

    In any case, my experience there led me to default this value to "Let the 3D application decide" or 1 while capping fps to only what's achievable since I just can't bear the hitching that I would often get with this at a low value and an unlocked framerate (unfortunately even at the default setting hitching still occasionally occurs, but seemingly less often and usually only when a "checkpoint" / new area is pulled in -- that sort of thing -- still drives me nuts when it happens though, but I digress...)

    For games like Overwatch that do have a setting like this in their menu, I expect that it's notable it does not default to being enabled. If it was recommended, then my expectation would be it would be ON by default, but it isn't.

    Anyway, I guess I'm wondering what all the pros and cons of turning this setting on vs off would be and if it's "worth it" considering that the control panel variant has often resulted in discernible framerate hitching for me. Or, is it that games that natively give users the option like Overwatch are properly coded to play nice with this flipqueue value while forcing it in the control panel means you'll inevitably get games that don't support it correctly?

    Thanks for your time, I really appreciate it.
     
    Last edited: Jul 17, 2019
  2. Archer Mac

    Archer Mac New Member

    Messages:
    2
    Likes Received:
    1
    GPU:
    GTX970M / 6GB
    Reduce buffering in Overwatch is about what's commonly known as one frame thread lag.
    They added this option a very long time ago as a means to offer less input lag at lower/fluctuating framerates...and any framerate...since it won't lag one extra frame at whatever your framerate is. As the game was getting more popular and competitive there was a bit of pressure on them to add this option cause it really is noticeable.

    It should be very easy to test in practice mode by locking to a lower framerate like 30 or 40 and then trying (and actually reaching) something like 120fps or more. You could likely notice a weird mouse movement lag even with 60 vs 144. In case it fluctuates a lot during gameplay it naturally results in an uneven feeling of input lag across the match on your aiming which could be annoying.

    I haven't played it in a while but by default they had one frame lag on (reduce buffering: off), while the option is to turn it off (reduce buffering: on).
    The reason why it's off by default is cause it impacts performance a bit - you give the engine 'that much' ms more or less to work with so the trade-off is potentially smoother visuals vs input lag.

    Simplified - by default the game lags one extra frame, at 30fps that would be 33ms more on your input, at 60fps 16ms,...at 120fps 8ms additional lag. That really is noticeable and it's the reason why input feels a lot tighter at higher framerates. Then they finally added this option which turns the feature off and provides you with better and much more consistent input lag, at the cost of some raw performance.

    It would be in your player-preference to have reduce buffering on in order to have less input lag so you could potentially play better / more consistent across fluctuating or lower framerates. The better your framerate is the less you'll notice this option's impact since 5ms at 200fps is not the same as having three-four times as much with 16-20ms at 50-60fps on top.

    If you're struggling with framerate and want a smoother experience at the cost of input lag, you turn reduce buffering OFF as it gives the engine more time to prepare.
    If you want less input lag at the cost of some performance, you turn reduce buffering ON.

    I was very excited when they finally added this option, it's much needed in online shooters like this.

    I think the same/similar thing happened "recently" with Unreal Engine 4 after Fortnite took off, Epic updated the engine since the game gained traction. PUBG, Tekken 7 and other UE4 games which updated also benefit from it...

    edit: point capture hitching and other such "event" hitchings weren't a thing during my time playing it the first 2 years, I was actually impressed with how incredibly good the engine was at streaming in and managing assets without stutters or freezes...I'm not sure about it's state right now though, it may be related to any amount of things.
    Also, I generally used MSI Afterburner to set a framerate cap cause it's far superior in creating almost flatline consistent frametimes compared to the ingame limiter...that could also help to deal with microstuttering.
     
    Last edited: Jul 11, 2019
    EerieEgg likes this.
  3. fantaskarsef

    fantaskarsef Ancient Guru

    Messages:
    10,906
    Likes Received:
    3,050
    GPU:
    2080Ti @h2o
    I can only relate to this topic in Overwatch:

    Enable it. And be mindful that the setting is sometimes bugged, so you'd have to "enable" it during matches as well (pro gamer and streamer Kragie can be seen doing it regularly during respawns).

    That said, I gained more direct gains by tackling other latency and microstutter issues with my rig which have a higher impact on perceived performance. And I honestly doubt my skill and reaction times are fast enough to have 8ms make a difference. Also, with ping and server interpolation in this game going up to as much as 40-50ms (EU servers), the difference might not be that big in total, or worth it to reduce it by almost 20%, depending on player and preferences.

    And to be honest: unless you're top 0.5% of gamers and reaction speed elitists, you die because you were unlucky, out of position, or the other one just clicked faster. Me included :D
     
    EerieEgg likes this.
  4. CrunchyBiscuit

    CrunchyBiscuit Master Guru

    Messages:
    256
    Likes Received:
    35
    GPU:
    AMD Radeon HD6950 2GB
    I suspect you already read it, but anyway:

    https://forums.guru3d.com/threads/the-truth-about-pre-rendering-0.365860/

    Yeah, it's the same thing on my ancient system.

    Many games (I have more than 130 currently installed) start to stutter a bit with flip queue size set to 1 (AMD minimum). In some cases it works fine and eliminates even more input lag, but in many cases the game just starts to exhibit small frame skips every now and then, sometimes even multiple times in a row (the fps counter occasionally reflects this - a small, very quick dip in fps, and then instantly back up and stable again). The problem gets resolved completely by setting the flip queue size to a value of 2, which is my safe minimum.

    I'm not sure why this happens, but it definitely does, on two of my (very comparable) systems at least (one of which recently blew up - literally).

    My specs are still actual (yeah, I should upgrade).

    I can't say anything about Overwatch specifically - never played the game. Anyway, as with most other things, you should just experiment yourself. I know it can be a hassle sometimes, but it's the only way to be sure.
     
    EerieEgg likes this.

  5. EerieEgg

    EerieEgg Member Guru

    Messages:
    162
    Likes Received:
    12
    GPU:
    GTX 1080 Ti
    @Archer Mac Thanks for your reply, regarding in-game limiters VS Rivatuner/MSI Afterburner fps capping, BattleNonsense put out a video testing input lag with different fps limiters (and iirc BlurBusters or some other outlets have tested it as well, but I could be misremembering). Anyway, what was found was that Nvidia Inspector is the worst for capping -- basically no reason to ever use it.

    Rivatuner was found to be best for properly limiting the framerate and having great frame pacing.

    On the other hand, in-game limiters were found to have the lowest input lag, though usually worse frame pacing compared with Rivatuner.

    RealNC has explained this on Guru3D in the past as being because limiters can reduce input lag by 1 or 2 frames where Inspector doesn't appear to reduce it at all, Rivatuner (external) limiters can reduce by 1 frame, and in-engine limiters can reduce by 2 if I remember correctly was what was said in that post.

    Because of this, what I usually do is use the in-engine limiter if one is provided (and it's not wildly inaccurate -- Diablo 3's in-game limiter simply doesn't work at all in my testing -- the cap isn't even remotely close to where it ends up limiting the framerate) but use Rivatuner in all other cases.
     
  6. EerieEgg

    EerieEgg Member Guru

    Messages:
    162
    Likes Received:
    12
    GPU:
    GTX 1080 Ti
    @CrunchyBiscuit Out of curiosity, what CPU/GPU/RAM are you currently running? Thanks for your reply, that's very helpful.

    What's interesting is I experience the exact behavior you're describing when I set Max Prerendered Frames to 1 in many games when you force the setting and I have what is considered to be a high end system (8700K @ stock clocks + 1080 Ti with conservative OC).

    What seems to fix this hitching is capping fps to a value that is almost always achievable -- so, for example -- if I cap fps at ~90 when playing Crysis 3 on High @1440p with my rig only results in this hitching happening very occasionally (normally when a checkpoint occurs or a new area is being streamed in -- this still drives me nuts though when it stutters) whereas unlocking the framerate sees the average fps reach to about ~110-120, but the hitching occurs frequently.

    My bet is this is because I'm CPU limited and the CPU can't keep up. A higher MPRF value (or the default) results in less perceivable hitching like that, but it does still occur from time to time in my experience.

    The issue is that usually I have to cap fps far far below the average/what's achievable if I want to use MPRF at 1.

    Unfortunately, this seems to be a setting that just requires experimentation and will likely not work so great at 1 for every game. My approach inline with RealNC's recommendation is to default this to 1 globally, but for titles where I run into issues, I either bump it up to 2 or swap the game's profile back to "let the application decide" -- I do hate doing that though, because I find even at high framerates the difference in input lag is discernible.

    For a bit of a "rant", Far Cry 5 is just dog**** in terms of hitching -- even at "let the 3d app decide" for MPRF, it hitches near constantly and makes that title just unbearable for me -- i've read some people think it's due to the 3 security softwares that have been layers on top, but I've got no idea why it occurs.

    Anyway, I imagine MPRF "2" like you recommend there is likely a good "balanced" approach if one wants to set this globally and be done with it, but I've encountered hitching in some titles even with it set to 2 so ¯\_(ツ)_/¯
     
  7. EerieEgg

    EerieEgg Member Guru

    Messages:
    162
    Likes Received:
    12
    GPU:
    GTX 1080 Ti
    @fantaskarsef Wow, is that setting still bugged? I remember reading it was bugged forevor ago, but I would hope that they'd've patched that out by now. I mean, sheesh Blizzard, that's a huge bug. I guess one could also "force" MPRF to 1 in the control panel for Overwatch -- that might resolve that bug.
     
    fantaskarsef likes this.
  8. CrunchyBiscuit

    CrunchyBiscuit Master Guru

    Messages:
    256
    Likes Received:
    35
    GPU:
    AMD Radeon HD6950 2GB
    Processor: AMD Phenom II x4 970 (3800MHz)
    RAM: 4GB Kingston HyperX 1333MHz (7-7-7-20-33-1T)
    Videocard: AMD Radeon HD6950 2GB (Sapphire, DiRT 3 Edition)
    Motherboard: Asus M4A88T-M
    Sound: Onboard VIA HD Audio
    Operating System: Windows 7 Ultimate 64-bit
    Display: Dell 2209WA (1680x1050)
    Input: Logitech G400s mouse (1000Hz), generic keyboard
    Storage: Western Digital Caviar Black 7200 RPM 1TB
    PSU: Corsair TX650W

    Pretty much outdated, but heck, so am I ;)
     
    EerieEgg likes this.

Share This Page