The truth about PRE-RENDERING 0?

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by Tastic, Jul 16, 2012.

  1. GanjaStar

    GanjaStar Maha Guru

    Messages:
    1,150
    Likes Received:
    0
    GPU:
    MSI 4G gtx970 1506/8000
    off the top of my head, 2 games I played recentish where I noticed it without even needing to do a benchmark comparison are darksiders 2 and mafia 3.

    my point is, it's a useful option, but it's not something I would just set and forget. each game is different.
     
    Last edited: Jan 8, 2017
  2. WhiteLightning

    WhiteLightning Don Illuminati Staff Member

    Messages:
    26,673
    Likes Received:
    36
    GPU:
    Inno3d GTX 1070 iChill x4
    I needed to put it at 1 with Darksiders 2 with my GTX780, otherwise it would lagg like hell or i had to turn down the shadows.
     
  3. RealNC

    RealNC Maha Guru

    Messages:
    1,200
    Likes Received:
    11
    GPU:
    EVGA GTX 980 Ti FTW
    In my experience, all games are the same. If I don't use 1, they have input lag.

    The only exceptions are games that already use 1 by default on their own.

    Setting this to 1 globally is recommended. I think AMD even switched to 1 as default in their drivers. Globally.
     
  4. Xtreme512

    Xtreme512 Master Guru

    Messages:
    593
    Likes Received:
    0
    GPU:
    GTX1060 6GB
    but this is not something like MFAA... setting it to 2 or 1 depending on the game will smooth out the game. i guess games on their engine use 3 or 4.
     

  5. GanjaStar

    GanjaStar Maha Guru

    Messages:
    1,150
    Likes Received:
    0
    GPU:
    MSI 4G gtx970 1506/8000
    yeah, the bold part is key for me. The rest we obviously don't agree on. I personally have 0 issues for years now, so I stick to the tried and tested practice of tweaking settings per game profile. Seems like a good habit from my experience.
     
  6. kurtextrem

    kurtextrem Member Guru

    Messages:
    145
    Likes Received:
    2
    GPU:
    NVIDIA GeForce GTX 970
    Rainbow Six Siege for me.
     
  7. RealNC

    RealNC Maha Guru

    Messages:
    1,200
    Likes Received:
    11
    GPU:
    EVGA GTX 980 Ti FTW
    Why not set it to something higher than 1 then for this game?

    "1" for global, then override that for the very few cases (none for me, just one for you) where needed?

    Sounds less backwards to me then going to each game's profile and setting "1" dozens and dozens of times.
     
  8. GanjaStar

    GanjaStar Maha Guru

    Messages:
    1,150
    Likes Received:
    0
    GPU:
    MSI 4G gtx970 1506/8000
    likely you are playing it with uncapped fps as it's an online shooter? in that scenario, a lot of games should have higher fps in some way or another with higher prerendered frames because uncapped fps shifts the bottleneck into CPU territory often.


    yeah, if you play every game with the 1 setting, it makes no sense to go around setting it to 1 per profile. i can count with my hands the amount of times I actually had need of this setting at all, so the convenience argument doesn't apply in my case.

    If someone paid me, i'd do a an analysis of the actual impact on FPS in a variety of games, to have actual hard data, but since no one is, i'll have to go by anecdotal experience I have, which is: the usefulness of setting prerendered frames to 1 is very rare.
     
    Last edited: Jan 10, 2017
  9. RealNC

    RealNC Maha Guru

    Messages:
    1,200
    Likes Received:
    11
    GPU:
    EVGA GTX 980 Ti FTW
    Just to make one thing clear: I'm always talking about vsync on here. If you use vsync (not fastsync, not gsync, not freesync, just plain old vsync), and there's no frame cap, *then* in my experience, pre-rendered frames 1 does help in the majority of cases.

    Frames that are pre-queued to be sent out for rendering are affected by vsync backpressure (which exists only if there's no frame cap.)
     
  10. tsunami231

    tsunami231 Ancient Guru

    Messages:
    7,670
    Likes Received:
    15
    GPU:
    EVGA 660gtx sig2
    I only use 1 if game has stuttering it usual fixes it other then i leave it at defualts
     
    Last edited: Jan 10, 2017

  11. GanjaStar

    GanjaStar Maha Guru

    Messages:
    1,150
    Likes Received:
    0
    GPU:
    MSI 4G gtx970 1506/8000
    I'm confused now. regular vsync for me is the one that caps fps to my refresh rate. what do you mean vsync with no framerate cap? like capping it below the refresh rate? I never do that with regular vsync as that is terrible for input lag for me.
     
  12. RealNC

    RealNC Maha Guru

    Messages:
    1,200
    Likes Received:
    11
    GPU:
    EVGA GTX 980 Ti FTW
    Vsync does not actually cap the frame rate. This is a popular misconception about vsync. What it does is syncing the output of new frames to the monitor's "vblank" signal (the point between the monitor having finished scanning out the current frame and is preparing to scan out the next.) The frame rate not exceeding the refresh rate is just a side effect of that. There's no actual frame capping involved.

    Because there is no frame cap, the game is preparing new frames as fast as it can. Once all possible frame buffers and all pre-render queues have been filled, only then will the game stop queuing more frames to be displayed. That means when all these buffered and queued frames are displayed later on, they're based on old input. Meaning input lag.

    Setting pre-rendered frames to 1 means less queued work is waiting to be processed. The game stops trying to output more frames sooner. Meaning you get less input lag. However, this doesn't help with queued frames that have already been rendered but have accumulated in the output buffers. You still get more input lag that needed.

    You can fix this issue by using a frame cap that's set at almost the exact same value as your refresh rate. Just 0.007FPS below it works fine (RTSS is accurate enough to allow for this.)

    (Please note that all this is for vsync. You don't need to do any of this when using G-Sync or FreeSync. For those two sync methods, just cap to 2FPS below max refresh and you're done.)

    Step 1: Find out your real refresh rate

    Nope, your real refresh rate is in the majority of cases not 60 nor 59. It's usually fractional. Most monitors use 59.94Hz for "60Hz" and 119.982Hz for "120Hz". You can detect your real refresh rate on these sites:

    http://www.testufo.com/#test=refreshrate
    https://www.vsynctester.com

    If both sites give you results very close to each other, then you can be confident that the numbers are pretty accurate and very close to your real refresh rate.

    It's important to use a browser that works (Chrome and Firefox should be OK), and that if you're using Windows 7, Aero must be enabled (the test needs Aero's vsync in order to detect your refresh rate.) It's also recommended to make sure that GPU acceleration is enabled in your browser.

    You only need the first three decimals of the detected number.

    Step 2: Use RTSS's new fractional frame cap feature

    In recent versions of RTSS, you can set a denominator for the frame cap. For a 59.940Hz monitor, you'd cap to 59.933FPS. For a 119.982Hz monitor, you'd cap to 119.975FPS.

    (At least RTSS version 6.5.1 is needed. Older versions will not work.)

    Do do this, you need to edit the profile file of RTSS (to set this globally, you need to edit the "Global" file inside the "Profiles" folder of your RTSS installation directory.) There's no GUI for this. For a 119.975FPS cap, you would need this in the profile file:

    Code:
    [Framerate]
    Limit=119975
    LimitDenominator=1000
    
    For a 59.933FPS cap, you'd use:

    Code:
    [Framerate]
    Limit=59933
    LimitDenominator=1000
    
    Step 2 different method: Using CRU

    Instead of using a fractional RTSS frame rate limit, you can instead continue using the default frame cap, but instead modify your monitor's refresh rate slightly. You can do that using CRU:

    https://www.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU

    For example, if you want to cap to 60FPS, modify your 60Hz mode to 60.007Hz. For 120FPS, modify your refresh rate to 120.007Hz.

    The downside to using CRU for this is that you need to re-apply your edits every time you upgrade your GPU drivers.

    Result

    This will keep the pre-render and frame buffers empty by stopping the game from rendering frames faster than your refresh rate.

    If you don't do the above, then setting pre-rendered frames higher than 1 will result in more input lag, and can result in bad frame pacing in some games.

    And even if you do the above, setting this value to 1 still helps as a guard against temporary framerate fluctuations (no frame capper is perfect), giving a more consistent input lag value.

    Keep in mind that all this requires a PC that's able to render frames fast enough. Since the above keeps render/frame buffers empty, it means there's no guard against frame rendering time spikes. If your PC can't maintain a solid 60FPS (or whatever your refresh is), then you might be better off not doing any of this.

    If your PC is fast enough though, then this is an excellent way of minimizing vsync input lag and maximizing smoothness by having good frame pacing (meaning frame times that match your refresh rate.)
     
    Last edited: Sep 22, 2017 at 10:57 AM
  13. GanjaStar

    GanjaStar Maha Guru

    Messages:
    1,150
    Likes Received:
    0
    GPU:
    MSI 4G gtx970 1506/8000
    thx, that's useful info. bookmarked the post for future experimentation. never knew vsync didn't actually cap the framerate.
     
  14. billypit

    billypit Member

    Messages:
    25
    Likes Received:
    0
    GPU:
    MSI
    How to calculate this number for different frequency?
     
  15. Xtreme512

    Xtreme512 Master Guru

    Messages:
    593
    Likes Received:
    0
    GPU:
    GTX1060 6GB
    we've been telling that here and there for a while.

    use pre-render 1 (now 2) + vsync (if double use triple buffer in d3doverrider) + fps cap at refresh rate (use rtss not others).
     

  16. RealNC

    RealNC Maha Guru

    Messages:
    1,200
    Likes Received:
    11
    GPU:
    EVGA GTX 980 Ti FTW
    Subtract 0.007 from it.
     
    Last edited: Jun 6, 2017
  17. j0shimi

    j0shimi Member

    Messages:
    14
    Likes Received:
    0
    GPU:
    GTX 1070
    Interesting stuff here, thanks for all the good work guys.

    Without wanting to drift too far off topic, how do these settings affect a 144hz, G Sync user such as myself.

    I set my FPS via RTSS to 142 or 140 in game as per instuctions and findings at Blur Busters 'G-Sync 101 w/Chart (WIP)' thread.

    I leave V-Sync and pre-rendered frames ahead at default settings in nVidia Inspector and can't see or feel any difference in input lag to having pre-rendered frames ahead to 1 or 2. Whereas if I force V-Sync on in Inspector (off in game), pre rendered frames to 1 or 2 definitely helps.

    Should I reconsider my FPS limit to match the 'Subtract 0.006' settings here or stick with the findings on Blur Busters if there is any benefit to either?
     
  18. RealNC

    RealNC Maha Guru

    Messages:
    1,200
    Likes Received:
    11
    GPU:
    EVGA GTX 980 Ti FTW
    No. With gsync, you have to cap well below the max refresh (~6 FPS lower.)

    Pre-rendered doesn't matter, unless you hit the refresh rate (which you can't if you use a capper.)
     
  19. WhiteLightning

    WhiteLightning Don Illuminati Staff Member

    Messages:
    26,673
    Likes Received:
    36
    GPU:
    Inno3d GTX 1070 iChill x4
    Thanks for sharing this tweak RealNC , its really smooth with this!
     
  20. nixon

    nixon New Member

    Messages:
    7
    Likes Received:
    0
    GPU:
    GTX570
    battlefield 3 and 4 run faster for me
     

Share This Page