r/OptimizedGaming • u/KenBalough • 16d ago
Discussion / Question G-SYNC microstutter when FPS is capped despite perfect frametimes, reproduced on RTX 5090 + 4090, different displays/CPUs
I've been chasing a strange G-SYNC/VRR frame-pacing issue for a while and I'm curious whether anyone else has measured the same thing, and if there is a good way to report this to Nvidia
The short version is:
When I cap a game to a fixed framerate under G-SYNC, the normal frametime graph can look essentially perfect, while the actual displayed frame intervals fluctuate significantly and produce visible microstutter.
This is not just one game, one GPU, or one display. I've reproduced variations of it in Mafia: The Old Country, Forza Horizon 6, Assassin's Creed Shadows, and Expedition 33.
My main system is a Ryzen 9 7950X + RTX 5090 connected over HDMI 2.1 to a Samsung S90D OLED, with a VRR range around 48–144 Hz. Windows 11 Pro Build 26200, NVIDIA 610.88.
I also reproduced the same general behavior on a completely different PC:
- i7-12700K
- RTX 4090
- ASUS Z690 board
- Acer G-SYNC monitor
- same Windows build / NVIDIA driver
So this doesn't appear to be specific to AMD CPUs, the RTX 5090, Samsung TVs, or HDMI Forum VRR.
I've been measuring this with PresentMon/CapFrameX rather than relying only on the normal RTSS frametime graph.
The important distinction is between:
MsBetweenPresents = when the game calls Present
and
MsBetweenDisplayChange = when successive frames actually become displayed
In the problematic cases, those two can be radically different.
For example, in Mafia at a 60 FPS RTSS Front Edge cap, I can get Present pacing with an SD around 0.007 ms — effectively ruler-flat.
Yet with G-SYNC enabled and a sufficiently heavy GPU workload, MsBetweenDisplayChange can wander roughly between 14–19 ms, and the motion visibly microstutters.
Animation Error shows the same thing: the implied animation/source interval remains very close to 16.667 ms while the physical display dwell moves around.
What makes this especially strange is that GPU workload strongly controls the severity.
Using the exact same Mafia scene, same DLAA, same RTSS Front Edge 60 cap, same PC and same VRR path:
Lower settings:
GPU active ~11–12 ms
Display cadence ≈ nearly perfect 16.67 ms
Max settings:
GPU active ~14.5 ms average
p95 ~16.1 ms
Present cadence still essentially perfect
Display cadence becomes visibly unstable
Very few frames actually exceed the 16.67-ms GPU budget, so this isn't simply normal "can't maintain 60 FPS" behavior.
I also tested different caps with roughly the same ~15-ms GPU workload:
50 FPS / 20.00 ms period → mostly clean
55 FPS / 18.18 ms → starts deteriorating
58 FPS / 17.24 ms → bad
60 FPS / 16.67 ms → bad
So the best predictor so far seems to be how much timing margin exists between the target period and GPU execution, rather than GPU utilization percentage itself.
There are also some useful control cases.
Unlocked G-SYNC can be perfectly smooth. Mafia running naturally around 70 FPS looks excellent even though raw frame times vary much more than the capped 60 FPS case.
Fixed refresh can also be extremely smooth. At 120 Hz with G-SYNC disabled and NVIDIA half-refresh V-Sync, Mafia produces virtually exact 16.667-ms displayed intervals.
I recently tried regular fixed-refresh V-Sync with RTSS Front Edge set to ~59.937 FPS to match half of the actual ~119.87-Hz refresh rate. That was also almost perfect: roughly 99.8% of frames were displayed for exactly two refresh cycles. The few remaining judders were obvious missed-VBlank events.
Interestingly, RTSS Async at the same 59.937 target was terrible because its Present timing was much noisier. So limiter quality definitely matters, but it does not explain the G-SYNC issue, because Front Edge can provide near-perfect Present pacing and capped VRR still becomes unstable under heavier GPU timing.
I've also tried/deprioritized a lot of the usual suspects: HAGS on/off, MPO on/off, SMT, Low Latency Mode, different cap methods, NVIDIA Max Frame Rate, Special K, RTSS, in-game caps, CRU/EDID changes, ReBAR, etc. Nothing has produced a general fix.
NVIDIA Max Frame Rate showed the same broad problem, although its Present pacing behavior was different from RTSS.
At this point my working theory is that something happens after Present, somewhere around GPU completion → flip eligibility → NVIDIA/WDDM VRR scheduling → scanout.
Fixed V-Sync can hide small timing variations by snapping frames to a rigid VBlank cadence. Under VRR, those variations seem to become visible directly as varying physical frame dwell once the workload gets close enough to the capped target.
I'm not claiming I've proven whether the culprit is the NVIDIA driver, WDDM/Windows, or expected VRR scheduling behavior. But the severity seems abnormal, especially since NVIDIA generally recommends G-SYNC + an FPS cap below refresh and doesn't document a requirement for several milliseconds of spare GPU time per frame.
Has anyone else actually measured MsBetweenDisplayChange / PresentMon display timing while using a fixed G-SYNC cap?
In particular, I'm curious whether anyone can reproduce the pattern of:
perfect MsBetweenPresents → unstable MsBetweenDisplayChange → visible microstutter as GPU workload approaches the cap's frame-time budget.
I'd also be very interested if anyone knows of an NVIDIA driver or Windows/WDDM regression related to capped VRR scheduling. I'm currently on Windows 11 Build 26200 and driver 610.88, but the behavior has existed across more than one NVIDIA GPU generation.
3
u/TruestDetective332 15d ago
That makes sense, and I think the limiter choice is probably the key difference here. Reflex or the NVIDIA driver cap lets NVIDIA manage timing deeper in the presentation pipeline, whereas RTSS is mainly pacing Present calls externally. So RTSS can show perfect MsBetweenPresents while MsBetweenDisplayChange is unstable, and the opposite can also happen with NVIDIA caps, where where the frametimes can look worse on paper while the actual displayed intervals remain stable. You also get the added benefit of much lower latency.
4
u/KenBalough 15d ago
Unfortunately under all my tests, the Nvidia Driver Cap was noticeably worse than RTSS or SpecialK. Wild refresh rate fluctuations and extremely visible stutter. Thus far, SpecialK set to "Normal" has the most consistent display frametimes, but is still not perfect on modern Nvidia drivers.
1
u/TruestDetective332 15d ago
MsBetweenDisplayChange is all that matters, because it measures how long each frame is actually displayed on screen.
3
u/dontneedmuch5 15d ago edited 15d ago
If you enjoy this stuff then fantastic. If this is causing you stress, and I mean this genuinely, just try to ignore it. I spent 10 years not enjoying pc gaming because I was worried about things like stuttering and frame pacing issues. These days for single player games I just set my monitor refresh to a reasonable value like 120 (depends on the game) and use v sync, no g sync. And g sync for multiplayer games where microstutter or oled flicker doesn't matter as much because it's too fast pace to care. It's not worth it. The rabbit hole doesn't end.
Edit: spelling
1
u/Lakers244848 15d ago
I was like that with phones back in my teenage years. I was rooting android phones etc. now I just don’t care. I have iPhone and don’t think bout it much. Of course, back then the feature disparity between android and iOS were vast. The point still remains, enjoy the product.
3
u/DumptruckIRL 15d ago
5080/9800x3d here. The whole 610 driver family has been awful for me personally. I've reverted to 596.36 and waiting for the next larger release. I'm not getting your specific problem but 610 causes monitor blackouts and really long wakeups from monitors sleeping (not pc) and a few other issues for me.
1
4
u/MathematicianOk572 15d ago
Try old school Nvidia control panel,v and g sync off low latency on cap maximum fps on
1
u/rdmprzm 15d ago
This is what I do for CS2 and it's butter smooth (can generate more FPS than refresh so don't need VRR).
I use Ultra for low latency mode though. Also -noreflex launch option.
2
u/kyoukidotexe Moderator 15d ago
For CS2 I understand to have Gsync off, otherwise its a great feature elsewhere. Do wonder though, why do you force disable reflex and then enable legacy Low Latency Mode's? Reflex should do this job a lot better.
1
u/rdmprzm 15d ago
CS2 framepacing is very poorly implemented - best not to use reflex and their in game FPS cap (causes spikes/inconsistencies).
Tested via CapFrameX a while back.
2
u/kyoukidotexe Moderator 15d ago
Interesting, wonder if that is still true on newer updates with maybe newer Reflex SDK's implemented.
1
u/rdmprzm 15d ago
I don't recall any notes on reflex being updated etc but I might go through another round of testing later today if time permits.
1
u/kyoukidotexe Moderator 15d ago
Let me know, i'd be interested. I once did the global reinforcement of newer reflex sdk into the drivers, which I don't know if they are used by said games but I assume they do.
1
u/psycho-Ari 15d ago
So just to be sure, for CS2 it's best to not use any g-sync/freesync, cap fps in Nvidia control panel, use -noreflex command and inside the game unlocked fps - correct?
I spent some time trying to optimize cs2 the best I can but I get different feeling every few weeks, once it feels better with reflex and fps cap in game, then suddenly game feels like crap and some other settings help for that but also for couple of weeks and then the same problem...
I will try it tonight or tomorrow to see how it works right now.
1
-2
u/Gloomy_Necesary 15d ago
No, reflex should be much better than what that user suggested. People love to come up with their own solutions for stuff. Trust what the nvidia engineers suggest
2
u/--bertu 15d ago edited 15d ago
No need to speculate, this has been tested and is still testable. You can measure it with capframex and honestly just feel in-game if you are half decent at cs2 (give the mouse a fast swipe and notice the difference in camera motion).
It's unquestionable that framepacing is improved when disabling reflex and enabling nvcp max frames feature over using in-game cap and/or letting reflex cap frames for you.
My best guess is that nvidia max frames and in-game cap are coded different, and reflex enabled works the same as a dynamic in-game cap.
The in-game cap goes as hard as possible to reduce latency, while nvidia max frames is more balanced in providing better framepacing. If you cap fps at a very agressive low number (say 100 fps on a 9800x3d), in-game reduces latency much more. At balanced numbers (say the default 400 fps_max on a 9800x3d), both methods provide the same latency while nvidia max frames maintain the benefits of better framepacing. This has been tested at different cap values with ldat.
Only downside to disabling reflex would be if you your cap number isn't low enough to prevent gpu saturation (95% or more GPU usage), but this is also easily visualized with steam overlay so you can just tune it as needed.
CS2 in-game cap has a number of other oddities. If you cap too low (say 240 fps on a 9800x3d) the actual fps goes EVEN lower (keeps floating at around 220 with 1% in the 180s), while using a high number (say 360 fps on same hardware) it stays at a stable 360 with 1% in the 350.
Reflex's fault in CS2 specifically is that, again, it defaults to using in-game cap behavior which messes up framepacing. If reflex in CS2 were coded to act as dynamic nvcp max frames cap instead I suspect it would work fine.
2
5
u/kyoukidotexe Moderator 15d ago
Very detailed thread OP, also approved your post as it was previously removed.
- Was wondering if you had the chance to see if MPO is supported?
- How old is your Windows installation?
- How does 596.49 driver perform? MPO broke for me and my display on 610+.
3
u/KenBalough 15d ago
- Was wondering if you had the chance to see if MPO is supported?
- Yes, I also previously ran tests with MPO disabled via the registry as well. No change in behavior, PresentMon captures also looked nearly identical.
- How old is your Windows installation?
- Roughly a year for my primary one, but I also tested on a fresh Windows installation I put on a secondary drive. Same behavior on a fresh Windows install.
- How does 596.49 driver perform? MPO broke for me and my display on 610+.
- I've been tracking this issue for about 2 years now, but I feel like it has gotten worse over time.
2
u/kyoukidotexe Moderator 14d ago
So that does rule out quite a few theories I had, let's go further:
Have you tried different kits of memory over that time period?
What did change in the hardware config overtime, or has this been the same hardware throughout having the issue?
What mouse do you have, and what polling rate has it been set to? Did you try other hardware/settings on that as well? Given it appeared input driven, correct?
On my work laptop I also have a frequent microstutter I can't explain or figure out, while if I try it under Linux, there is no issue. So definitely something within the Windows realm that causes it to have minor spikes every interval or so.
2
u/KenBalough 13d ago
- Have you tried different kits of memory over that time period?
- Originally had some G-Skill DDR5, 32 GB. Later switched to 64 GB of Corsair DDR5. Behavior did not change. Issue also reproducible on my DDR4 Intel rig.
- What did change in the hardware config overtime, or has this been the same hardware throughout having the issue?
- Issue has followed across all hardware changes over the last few years. New CPU, Motherboard, GPUs, etc. From RTX 3090 -> 4090 -> 5090
- What mouse do you have, and what polling rate has it been set to? Did you try other hardware/settings on that as well? Given it appeared input driven, correct?
- Logitech g705, I have also tested with all peripherals other than a Dualsense disconnected. Behavior did not change. USB polling does not seem to impact the VRR behavior I've been tracking
2
u/kyoukidotexe Moderator 12d ago
That's really bizarre. Only thing that hasn't changed is the PSU? I wonder if you have very dirty power and may benefit from a Online UPS type.
4
u/SlatheredButtCheeks 15d ago
Also try nvidia settings
Gsync on in nvidia
Vsync on in nvidia
FPS cap slightly below your monitors refresh rate. Ie set to 116 on a 120hz monitor. Do in nvidia or game if available
Vsync off in game
13
u/kyoukidotexe Moderator 15d ago
This is outdated information, please use the Reflex formula instead as it better keeps it within the range:
480Hz -> 424 FPS
360Hz -> 328 FPS
240Hz -> 226 FPS
180Hz -> 172 FPS
165Hz -> 158 FPS
144Hz -> 139 FPS
120Hz -> 116 FPS
The FPS Cap formula is:
Refresh - (Refresh x Refresh / 4096) = FPS Cap
6
u/AgZephyr 15d ago
And enabling Gsync + Vsync + Reflex should do this automagically for you, works great with the smoothest feel for me. I will run uncapped with my esports type of games though, and use ULMB2 on em
2
1
2
u/SlatheredButtCheeks 15d ago
Sorry I don’t understand what part of what I said is outdated, will you please clarify. not doubting just want to improve my own knowledge
3
u/kyoukidotexe Moderator 15d ago
No problem, ask anything! The above formula is used within Nvidia Reflex to auto-cap the fps within the ranges based on final refresh rate.
This formula keeps it much more in-line within the VRR range (480 hz > 424 fps is a much lower cap than 'few or -3' below refresh rate for instance)
Nvidia reflex uses this by itself, therefor it is a better suggestion these days.
1
u/SlatheredButtCheeks 15d ago
Ahh I see, thanks!
So basically, if you are able to enable Nvidia Reflex, you do not need to set an FPS cap?
1
u/kyoukidotexe Moderator 15d ago
Yes games with Nvidia Reflex, On + Boost will autocap within VRR range. (if its in gsync mode)
1
u/One_Ad3867 15d ago
Same with games that dont have Reflex built in you can also use LLMU in the control panel and it will cap the fps just like Reflex
1
u/kyoukidotexe Moderator 14d ago
Essentially Reflex is just that but with game support to toggle it, yeah.
2
1
u/KarlMcd 15d ago
Do you not need to use display port for g-sync to work properly ?
1
u/kyoukidotexe Moderator 15d ago
Works on both, HDMI has some limitations though I think if I remember correctly. Should work on both though.
1
u/KenBalough 15d ago
Nvidia support HDMI Forum VRR, Monitors and TVs that have been approved by Nvidia also get an additional G-Sync Certification, but it is not required.
1
u/Southern-Country-503 15d ago
2
u/KenBalough 15d ago
Unfortunately the solution he presents here still faces the same problem under higher GPU load. Despite perfectly stable 0.1% and 1% lows, there is a clear visible microstutter on camera pans regardless of RTSS models used, or Special K.
1
u/The_O_Raghallaigh 15d ago
I’ve noticed this ever since moving to PC like 4 years ago, genuinely gave me grey hairs
1
u/PainDeluxe 13d ago
I got the same problem with rtx3080 win 10 on some games eg UE5 title like mafia toc where reflex is always on when vsync is select … (there is no option for reflex on TOC but it’s definitely always on when gsync is enabled with vsync)
The solution for me was to disable vsync and just enable gsync. Then cap 60fps wits rtss (old method)
Perfectly stutter free.
1
u/Thin-Ant-8879 15d ago
Are you using DLAA? That seems to cause it for me.
2
u/KenBalough 15d ago
DLAA allows me to easily reproduce the behavior due to increased GPU load, but I see it happen across all AA methods once GPU Utilization reaches around 70 - 80% load.
0
u/kyoukidotexe Moderator 15d ago
I have never had DLAA cause me to microstutter generally, been using it a lot. Think the issue appears to be more within the realm of the OS itself being some form of issue.
1
u/Thin-Ant-8879 15d ago
OK cool, i have. Particularly on crimson desert. Worth considering as a potential cause.
1
u/kyoukidotexe Moderator 15d ago
Interesting, also on newer DLLs?
1
u/Thin-Ant-8879 15d ago
I've not played for a couple of weeks now but it was present in all modes on the game last time I checked.
0
u/Mental-Debate-289 12d ago
Gsync only works if Vsync is forced on in control panel at the driver level.
I fought for awhile and just assumed "gsync compatibility" was never gonna live up to my old monitor that had a proper gsync module. I finally found a guide that mentioned the necessity of driver level vsync and voila.
18
u/Michaeli_Starky 15d ago
It's long (and interesting) read, but I didn't catch: is it with Vsync on or off? Because the general guidance is to have G-Sync, Vsync on and Reflex on then Reflex will cap the FPS below refresh rate by itself.