Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Everything about latency. Tips, testing methods, 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
SalamatiQus
Posts: 2
Joined: 29 Jan 2015, 05:23

Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Post by SalamatiQus » 04 Mar 2022, 04:15

Hello there,

I encounter increased input lag in DX12 games such as Cyberpunk 2077 and Elden Ring.
While I can fault 99% gpu load in Cyberpunk 2077 for input lag, same still happens in Elden Ring too.

Tested a bit in different modes and came to these results for Elden Ring (system settings are as per Gsync Optimal Guide):
1) Option "Fullscreen" has biggest input lag. Game is capped at 60 fps and gsync is active. Additionally RTSS cap of 60 is set to "flatten" frametimes
2) Option "Borderless Fullscreen". Much less input lag but I believe there is some.
3) VSync is forced to off through NvidiaInspector. No input lag at all but there is tearing visible.
4) Option "Fullscreen" again but RTSS cap is set to 59. Much less input lag.

It makes me believe DX12 kinda makes fps capped games believe my monitor is only 60Hz (in this case at least) and with forced vsync on I do get typical vsync mouse lag.

Now, it does not really make sense to use scanline on a gsync monitor but I will test it too just in case with vsync forced off.

Is there anything else I might be missing?

User avatar
jorimt
Posts: 2484
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Post by jorimt » 04 Mar 2022, 09:10

SalamatiQus wrote:
04 Mar 2022, 04:15
It's not directly the fault of DX12, it's the fault of the game engine; Elden Ring is a special case...

Historically, Souls games on PC automatically limit the maximum refresh rate to 60Hz when set to exclusive fullscreen, regardless of the achievable max frame rate of your monitor (or you're G-SYNC settings; not even the NVCP preferred refresh rate setting works).

This could usually be worked around by disabling fullscreen optimizations for the game .exe, but unlike previous Souls games, Elden Ring is running on DX12, not DX11, so this trick won't work.

The reason you're experiencing increased latency in exclusive fullscreen with G-SYNC mode, is because you're running at 60 FPS 60Hz, where the G-SYNC ceiling is 60Hz, so if you're using G-SYNC + V-SYNC, for instance, G-SYNC technically isn't active at all, and has reverted to standalone V-SYNC behavior.

Now, you can set a 57 FPS external limit while using exclusive fullscreen in that game, which will bring it back into the G-SYNC range and reduce latency, but 57 FPS 60Hz still has higher latency than say, 60 FPS 144Hz with G-SYNC (where 60 FPS is now 84 frames within the G-SYNC range), since frame delivery is slowed at 60Hz, regardless of framerate.

To work around this in Elden Ring, use G-SYNC + V-SYNC + in-game limit (I don't recommend stacking limiters using the same limit; could worsen things) + in-game borderless.

DX12 borderless is effectively exclusive fullscreen with adaptive DWM support, which will both allow the refresh rate to exceed 60Hz, and G-SYNC mode to function, even if G-SYNC is only set to fullscreen mode in the NVCP.

It's what I'm using currently (I'd use the mods that unlock FPS/Hz, but I personally want to retain all the online functionality).
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

BigBoi
Posts: 36
Joined: 26 Jun 2021, 18:46

Re: Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Post by BigBoi » 04 Mar 2022, 11:41

Also, theres actually a problem with elden ring dodge rolls. They have insane input lag, you can actually see youtube videos demonstrating the issue aswell as people talking about it on reddit. I decided to hold off playing elden ring until they fix it.

SalamatiQus
Posts: 2
Joined: 29 Jan 2015, 05:23

Re: Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Post by SalamatiQus » 04 Mar 2022, 21:30

jorimt wrote:
04 Mar 2022, 09:10
SalamatiQus wrote:
04 Mar 2022, 04:15
G-SYNC technically isn't active at all
I've made 45 fps cap in Fullscreen mode to see what happens and yes, monitor still reports 60Hz, like there is no Gsync at all.

Thanks for explanation, will stick to Borderless Windowed mode for Elden Ring

kairos
Posts: 1
Joined: 08 Apr 2024, 09:16

Re: Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Post by kairos » 08 Apr 2024, 09:42

jorimt wrote:
04 Mar 2022, 09:10
SalamatiQus wrote:
04 Mar 2022, 04:15
It's not directly the fault of DX12, it's the fault of the game engine; Elden Ring is a special case...

Historically, Souls games on PC automatically limit the maximum refresh rate to 60Hz when set to exclusive fullscreen, regardless of the achievable max frame rate of your monitor (or you're G-SYNC settings; not even the NVCP preferred refresh rate setting works).

This could usually be worked around by disabling fullscreen optimizations for the game .exe, but unlike previous Souls games, Elden Ring is running on DX12, not DX11, so this trick won't work.

The reason you're experiencing increased latency in exclusive fullscreen with G-SYNC mode, is because you're running at 60 FPS 60Hz, where the G-SYNC ceiling is 60Hz, so if you're using G-SYNC + V-SYNC, for instance, G-SYNC technically isn't active at all, and has reverted to standalone V-SYNC behavior.

Now, you can set a 57 FPS external limit while using exclusive fullscreen in that game, which will bring it back into the G-SYNC range and reduce latency, but 57 FPS 60Hz still has higher latency than say, 60 FPS 144Hz with G-SYNC (where 60 FPS is now 84 frames within the G-SYNC range), since frame delivery is slowed at 60Hz, regardless of framerate.

To work around this in Elden Ring, use G-SYNC + V-SYNC + in-game limit (I don't recommend stacking limiters using the same limit; could worsen things) + in-game borderless.

DX12 borderless is effectively exclusive fullscreen with adaptive DWM support, which will both allow the refresh rate to exceed 60Hz, and G-SYNC mode to function, even if G-SYNC is only set to fullscreen mode in the NVCP.

It's what I'm using currently (I'd use the mods that unlock FPS/Hz, but I personally want to retain all the online functionality).
Sorry to necro, New to the forums. Made an account to thank you for all the work you've done and info you've provided. I can't overstate how much the articles have helped. And this post too as well. I was facing input lag that made no sense in elden ring. But this has solved it entirely and I now have a better understanding as to why its happening. Am I correct in understanding the reason borderless works better is because it does not limit your refresh rate to 60hz like fullscreen and therefore standard vsync is not active? And just for knowledge sake, is there a way to 'solve' or identically remove the input penalty in exclusive fullscreen? I would imagine its just setting like a 58 or 59 fps limit to make sure gsync is active.

User avatar
jorimt
Posts: 2484
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Input lag in DX12 games (Elden Ring, Cyberpunk 2077)

Post by jorimt » 11 Apr 2024, 09:55

kairos wrote:
08 Apr 2024, 09:42
Am I correct in understanding the reason borderless works better is because it does not limit your refresh rate to 60hz like fullscreen
In the case of this specific scenario, yes.
kairos wrote:
08 Apr 2024, 09:42
And just for knowledge sake, is there a way to 'solve' or identically remove the input penalty in exclusive fullscreen? I would imagine its just setting like a 58 or 59 fps limit to make sure gsync is active.
I answered this in the comment you quoted:
Now, you can set a 57 FPS external limit while using exclusive fullscreen in that game, which will bring it back into the G-SYNC range and reduce latency, but 57 FPS 60Hz still has higher latency than say, 60 FPS 144Hz with G-SYNC (where 60 FPS is now 84 frames within the G-SYNC range), since frame delivery is slowed at 60Hz, regardless of framerate.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

Post Reply