Here is what I had asked:
I know I am a little late to the party, but I would like to ask something. I find it a little sad that G-Sync just as V-Sync allows for excessive frames to stack up. I have a powerful GPU and so I am (luckily) very often at the top limit of my monitor’s G-Sync range. I feel that I should disable V-Sync with G-Sync and accept some minor tearing for getting the best performance, particularly as I have an IPS display which I love color-wise but which already is far more laggy than my previous 1 ms G-Sync display (TN panel). I would rather not accept the 1 additional frame added by RTSS.
Here comes the question: does the NVCP option “Max. pre-rendered frames” not work? Or not all of the time with all of the games? Should it not do exactly what we all want: disable frame stacking and remove the need for a frame limit? I can’t find this setting being mentioned in your article at all.
I would also like to know whether the respective option in Overwatch does work well. If yes, does it not solve this issue at least for this game? You also stated that this option was ON for all your tests. If it works, you couldn’t have observed frame stacking with Overwatch, right?
And finally I would like to ask whether the 1 frame lag introduced by RTSS only applies when near the set threshold, or whether the limiter is active all of the time and the lag also occurs if operating far below the limit.
Thanks for you time!
EDIT: Out of curiosity, excessive frames stacking up would be limited by VRAM size, right?
And here is what you had replied:
That is true, motion blur is a bigger thing on IPS. However, I read that input latency is usually higher with IPS than TN. And I found this confirmed reading the Prad reviews for both of my displays, which differentiates between GtG and input lag:First off, you’re IPS doesn’t necessarily have more input lag than your TN; in fact, it could be the same in that respect, or have even less. What the IPS does have is more motion blur. The 1ms number advertised by your TN is what is called GtG (gray-to-gray), which measures how fast pixels on the display transition from black to white and back. The lower the number, the lower the motion blur.
https://www.prad.de/testberichte/test-m ... sverhalten
https://www.prad.de/testberichte/test-m ... Latenzzeit
(sorry, both in German; ~2 ms vs. ~19 ms of mere input lag)
In any case for me motion blur adds to perceived latency and now with IPS I really have the desire to get this as low as possible.
From what you have written below I take it that this "1 more frame of lag" applies only if the RTSS limiter kicks in, i.e. if actually hitting the set limit. Specifically, it is 1 more frame of lag than in-game limiters would create at this point. But as lag cannot be negative, it is still 1 more frame (as compared to the best case scenario).With that bit out of the way, in part 11 of my article, I never said RTSS added 1 frame of lag over an uncapped framerate within the G-SYNC range. If you go back and read it carefully, I only said RTSS had 1 more frame of lag over an in-game limiter. And as I’ve clarified in the comments section here multiple times before, RTSS can actually have less input lag than uncapped at the same framerate, even within the G-SYNC range (more on this further down).
Now I have read through all the comments to the original article, as I felt I was missing out on prior information.
My current understanding is this: It is actually best if you are using an in-game FPS limiter AND you are constantly hitting that limit. If you don't use a limiter with G-Sync, you might end up piling up multiple pre-rendered frames. If you are constantly below your FPS limiters value, e.g. you are GPU-limited and constantly well withing G-Sync range, you are at something like pre-rendered frames of "1". Only if you are constantly hitting your set FPS limit below the monitor's refresh rate you are at something like pre-rendered frames of "0". However, if you are using RTSS, this benefit gets sort of eaten up by the one additional frame of lag (as opposed to in-game limiters).
Does that mean it would be beneficial to set the FPS limit even lower in some GPU-intense games in order to make sure that you are always constantly hitting that limit? Purely speaking from a lag perspective.
I apologize, I should have read to the end of the article first.As for NVCP’s Maximum pre-rendered frames setting, I do have a paragraph on that in part 14 of my article (under “Maximum Pre-rendered Frames: Depends”), and, to be clear here, the pre-rendered frames queue has nothing to do with the need to limit the framerate 3 FPS below the given max refresh rate with G-SYNC enabled. As I stated in a comment a few below yours (when sorted by “NEWEST”): “You need the FPS limit because G-SYNC works by dynamically adjusting the refresh rate, and when the refresh rate is maxed out, it no longer has anything to adjust.”
I sort of get what you said in the last sentence. My current understanding is: If running G-Sync with V-Sync on and if FPS are reaching the displays max refresh rate, G-Sync effectively switches to V-Sync behavior allowing for pre-rendered frames to pile up.
Now my reasoning was: the GPU will not do anything if no frame data (character positioning etc.) is provided by the CPU. Therefore, if "Max. pre-rendered Frames" is set to the lowest possible value, the GPU won't stack up frames because there is nothing to process.
Hm. So the CPU does not actually pre-compute frame-related game info but just sort of "waits" longer or has a longer grace period for coming up with the necessary data the GPU needs? This stuff really confuses me, I apologize.In simplified terms, unlike the “over-queuing of frames” (which is caused by certain syncing methods’ frame buffers continually overfilling when the framerate is above the max refresh rate, and prevented with an appropriate FPS limit), the Maximum pre-rendered frames setting determines how much “breathing room” the CPU has before it hands frames off to the GPU for display; the larger the queue (say “4”), the less potential there is for frametime spikes (but the higher the input lag), and the smaller the queue (say “1”), the more potential there is for frametime spikes (but the lower the input lag).
My understanding has grown, see above.The pre-rendered frames queue is typically required to keep frame delivery as uninterrupted as possible, since there is no guaranteed frametime from frame to frame with a fluctuating framerate. However, if the framerate is limited by an FPS cap at all times (and doesn’t drop below it), there is now a constant, predicable frametime, and the pre-rendered frames queue effectively becomes “0” until the framerate drops below the cap again, at which point said queue resumes. For that reason, even if there isn’t an in-game limiter available, an RTSS limit actually has potentially lower input lag than uncapped at the same framerate within the G-SYNC range.
I seem to understand now that constantly hitting the limit of an FPS limiter is beneficial and is what you want, preferably an in-game limiter.As for Overwatch’s “Reduced Buffering” option, that’s their equivalent of NVCP’s Maximum pre-rendered frames at “1.” However, again, you still need the -3 FPS limit on top of that to stay within the G-SYNC range. And I do recommend the Overwatch FPS limiter over RTSS for that specific game.
I still don't quite understand the purpose of the max pre-rendered frames. If G-Sync transitions to V-Sync, multiple frames can stack up, of course. You prevent this via a limiter. And constantly hitting this limit is even better, you achieve a pre-rendered frames state of "0". If you fall below the limit, you are back at "1". But if you set pre-rendered frames to "1" in NVCP or in-game, and you don't use a limiter, shouldn't that have the same effect as being below your FPS limit? A maximum of 1 frame will pile up?
I understand that if you play Overwatch or CS competitively, and you have framerates of 300 FPS all the time, and you are playing on a 240Hz display with a limiter set to 237 FPS, you will constantly hit this limit and you have the perfect lag-free and tear-free solution on a G-Sync display.
But if you play something like Far Cry 5 of Battlefield V or whatever, and you are constantly dropping below the 237 FPS (or 163 FPS on a 166 Hz screen as in my case), you will basically never sit in that sweet spot of pre-rendered frames of "0", but you will always be at "1". And at this point you could as well _not_ use a limiter. Because with Max Pre-Rendered Frames set to "1" in NVCP you will "pile up" the same amount of 1 frame even if you reach/exceed your monitors refresh rate. And then you would not constantly switch between "0" and "1" depending on whether you hit the limit or not, but you would have a constant lag of 1 pre-rendered frame all the time, which some people might find more pleasing.
Of course, you could also set a much lower limit to make sure you hit it all the time. But who wants to limit the framerate unnecessarily.
Good to know, thank you.And yes, the RTSS limiter is only active when the framerate is at or above the set limit; whenever the framerate drops below the set limit, the RTSS limiting function is not active.
So neither over-queuing of frames nor pre-rendered frames actually mean that the GPU has computed anything. It is just data prepared by the CPU and nothing is really rendered. Is that it? Because fully rendered frame buffers would probably not get stored in system RAM as that would be very slow, as you also stated. They have to be stored in the VRAM. Unless the GPU has some additional hardware for storing the frame buffer(s), which is not my understanding at least.Finally, no, your VRAM size has nothing directly to do with either the over-queuing of frames or the pre-rendered frames queue. VRAM is primarily there for games to access textures and other assets, as it typically has much faster access times than system RAM or hard drives.
Again, thank you very much for spending all this time answering all or our questions, jorimt!
EDIT: I really wonder why NVidia doesn't give us the option to have "0" pre-rendered frames all the time, if that is what most of us want.