Weird issue with framegen in dx12 titles "input latency creep" [solved]

Everything about latency. This section is mainly user/consumer discussion. (Peer-reviewed scientific discussion should go in Laboratory section). Tips, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
Post Reply
daemonjax
Posts: 37
Joined: 13 May 2024, 08:42

Weird issue with framegen in dx12 titles "input latency creep" [solved]

Post by daemonjax » 28 Jun 2025, 11:49

I call it "input latency creep" because that best describes what I'm experiencing. And I'm pretty sure this only happens dx12 games, but I only really use framegen at all in two titles: cyberpunk 2077 (because I kinda have to with max graphics + rr + quality tensor dlss) and dune: awakenings (because it seems to solve a lot of stuttering problems).

First, my current specs:
Win10, 5700x3d (-30 all cores in bios, cppc preferred cores disabled, smt enabled), 32gb ddr4 3600 (no oc), 4700ti super (no oc), 1920x1200 non-gsync lcd panel (capable of anywhere from 49hz to 74hz), m.2 nvme


So I used to think this was just a Cyberpunk 2077 quirk with framegen, but now I'm having the same exact issue in dune:awakenings... both are dx12 titles:

Using framegen with an fps cap of 60 (so the game runs internally at 30 fps) + vsync forced in nvcp. Also using a custom resolution of exactly 60 hz. I don't actually _need_ framegen to play dune:awakenings the same way I do for cyberpunk 2077 -- this engine is weird and seems to really like running internally at 30 fps to never stutter.

Initially after starting the game(s), input lag is perfect. Zero stutters. Max graphics. Everything's perfect.

After some amount of time (maybe a minute), input latency increases noticeably (maybe 1 or 2 frame's worth). This only happens with framegen enabled.

The following things fix it temporarily: Alt-tabbing, hitting the windows key twice, entering and exiting the inventory/escape menu screens -- basically anything that causes framegen to temporarily pause. Like it's resetting the render queue that got deeper for some reason, no reason really.

It's definitely BETTER if I use nvidia's v3 framelitter at 60 -- when it happens, it only adds what feels like 1 frame's worth of latency. Also, it seems to take way longer to happen... more than a minute, usually. I initially thought this completely solved the issue. I was so excited. But wrong.

If I use no framelimiter or rtss to limit framerate (even to something slightly below my refresh rate), but vsync is still forced on, then the same thing happens except it feels worse -- like it's adding 2 frames of latency (borderline unplayable for me).

This engine (unreal 5.2 afaict) just really likes to run at 30 fps. There's two ways to do that:
1) actually run at 30 fps using a framecap with a custom res of 60hz (simply unacceptable for me -- I'd need nextgen alien tech motion blur)
2) framegen and capped at 60 fps with a custom res of 60hz (works perfectly except for this one issue).

I made a simple autohotkey script that temporarily fixes the issue with 1 key press by causing the active window to lose and then regain focus (framegen turns off when it loses focus and regains it when it gets focus back). This is better than having to go into the game's map/inventory screen or double-tapping the windows key. So I can just accept it and just play, but I'd rather not.
https://pastebin.com/ezzisiyL

EDIT: I experimented with different ways to do it (lose focus and get it back), and this turned out to be the fastest (it just alt-tabs, hits the left arrow key, and then releases alt key):

F1::
{
Send "{Alt Down}{Tab}"
}
F1 Up::
{
Send "{Left}"
Send "{Alt Up}"
}



Has anyone heard/experienced anything like this, or am I alone? If I switched to Win11 or got a gsync lcd panel, would this for sure solve the problem?


UPDATE (solved!):

Setting the nvcp v3 frame limiter to 60 (with a custom resolution @ exactly 60hz + ADAPTIVE vsync) does not help at all -- no tearing (indistinguishable from regular vsync), but the input latency creep still happens the same.

Setting the nvcp v3 frame limiter to 59 (with a custom resolution @ exactly 60hz + vsync) does not help at all -- behaves exactly like limiting to 60 fps, which seems weird to me.

Setting the nvcp v3 frame limiter to 58 (with a custom resolution @ exactly 60hz + vsync) does solve the input latency creep problem, but results in: a) significant framedrops and microstuttering, some ghosting, and significant rendering issues (white textures and geometry artifacting). It's playable like this in the general sense, but... it's not good. I'd rather eat 1 more frame's worth of latency. BESIDES all that, it looked as if it was still running at 60 fps, which seems weird to me.

Setting the nvcp v3 frame limiter to 59 (with a custom resolution @ exactly 60hz + ADAPTIVE vsync) solves the problem perfectly! Weird. And there's no tearing at all. So weird. I suspect it works because occasionally it drops out of vsync, but too infrequently for me to notice. It probably does stutter when it happens, but I haven't noticed a problem. And I suppose it's possible in some cases for the input creep to come back temporarily if it never drops vsync, even for a frame? I played for over 30 minutes without it happening. I wonder if this will work for me in cyberpunk 2077, too... cyberpunk 2077 doesn't seem to have the weird-liking-30-fps problem (I think it might be all unreal 5 games, not sure), but I do get the weird latency creep.

Sidenote1: Fast Vsync resulted in a stuttery mess. Unplayable. (EDIT: fast vsync doesn't work in dx12 titles at all)
Sidenote2: I don't actually use framegen on any vulkan games I play (NMS) because of the (imo) extreme ghosting I experience -- but I don't get the input lag creep with them... so I'm thinking it's a framegen+dx12 thing... on the other hand, I get zero ghosting in cyberpunk 2077+fg and dune:awakening+fg... unless I set framelimiter low enough to 100% eliminate the input latency creep (e.g. 58 fps limit @ 60hz) -- then I get all the bad things I hear people say about fg... ghosting, weird artifacting, weird missing textures for a moment.
Sidenote3: Since adaptive vsync + nvcp frame limiter v3 @ refresh - 1 seems to be the key thing here (I'm assuming I do get a stutter instead of the input lag creep), right now I'm experimenting with different custom resolutions between 74 and 75 to see how close to 74 I can get without getting any input lag creep at all -- so far I'm down to 74.125hz, but I do experience it when first logging in, but then if I do my thing to temporarily fix it, it doesn't seem to come back... so far. What I'm trying to do is dial it perfectly, kinda like I would with rtss, but in reverse -- keeping the nvcp frame limiter @ 74 fps, but then adjusting the refresh with a custom res.
Sidenote4: I also ordered a gsync compatible lcd panel to test that out (LG 27GP750-B 27” Ultragear FHD (1920 x 1080) IPS Gaming Monitor for $226) -- if it doesn't help with this issue then I'm returning it. I'll need to push it a few inches further back to match the perceived pixel density of my 25" 1920x1200... so kinda pointless if it doesn't help (looks like 16:10 is dead if you want gsync/freesync).

Update: for frame limiting at 74 fps using adaptive vsync + (for some weird reason), the lowest custom res refresh rate is somewhere between 74.500 and 74.750 for 0 input latency creep... it's just hard to test at this point -- the issue at ~74 hz + adaptive vsync enabled is really only noticeable to me when using weapons/devices that have a zoom overlay -- binoculars and sniper-ish rifles... anything at or below 74.500, I think I may as well use 74.000, because it maybe I'd get less stuttering. I suspect I'm near the edge of input latency that I can feel. 74.575 seemed to work... I'm going to try and dial it in within 0.005 hz. I'm curious to see if it's going to be a flat amount regardless of the actual refresh rate used. About to try 74.525...
Update: 74.511 seems to be it -- I can't go any lower without having CRU's "actual" not matching what Windows' actually sees it as (at least with any sane backporch values), and I like to keep them them both matching (although in this particular case it may not matter because I'm already framelimiting below actual hz, which I suspect is due to hags being on for framegen). One thing I noticed that when I got down to 74.515 I got significantly reduced stutters compared to higher custom res refresh values -- more like microstutters than fullblown framedrops (which get multiplied in severity due to framegen). Tomorrow my new gsync compat lcd panel should arrive and I'll compare this result to what I can get with that because this, right now, seems pretty perfect -- at least for this game engine which has known stuttering issues (traversal stutter).
Update: So I got that gsync compat lcd panel. As expected, it's just bad. Framerate constantly fluctuates (vsync on, framecapped to 74 fps for apples to apples comparison). I can feel the constant framerate fluctuations as microstutters. I'm really sensitive to stutters. It's exactly how I expected the tech to behave. Just terrible. Also the gamma is shit on this lcd panel -- the gamma literally increases from left to right (i.e. 1.8 on the left, 2.0 in the middle, and 2.2 on the right). Amazing. Also, when gsync is enabled, there's no option in nvcp for adaptive vsync (obviously) -- so maybe it's not really an apples to apples comparison, but it's as close as it gets. Instant return, mostly due to the shit gamma bc that's just unacceptable.

Post Reply