Gsync windowed mode output the wrong vrr framerate to monitor

Talk about NVIDIA G-SYNC, a variable refresh rate (VRR) technology. G-SYNC eliminates stutters, tearing, and reduces input lag. List of G-SYNC Monitors.
Post Reply
Windmill1055
Posts: 3
Joined: 03 Dec 2024, 11:08

Gsync windowed mode output the wrong vrr framerate to monitor

Post by Windmill1055 » 03 Dec 2024, 11:39

I have a dual-monitor setup: 321upx at 4k240hz and g271u at 4k120hz, both support gsync-compatible. The graphic card is 4090.

The first display has a HUD fps indicator. When gsyned is enabled, it will display the acutal VRR refresh rate in realtime. And i wound call this as "hud fps".

The problem starts with that some games(L4D2, dx9 and VRChat dx11) would cap the fps under gsync windowed mode. Under my setup, the cap is refresh rate of my gaming monitor, 240hz.

Usually this wont make much trouble, but i fell the game is not as smooth as 240hz. So i enabled the monitor fps hud display. I found that the game is rendered at the cap of 240hz, the hud fps is only 120.

I found that hud fps is associated with my second monitor. When I set my secound monitor's refresh rate to 60hz, the hud fps would also be 60. When I disabled the second monitor physically, everything worked normally. gsync is fine and the hud fps finally can reach 240.

I do not know why the hud fps is limited by my second monitor in gsync windowed mode. I have tried the following methods:
- Switch the hdmi and dp port of my monitors
- Set the vsync and fps cap disabled, gsync-compatible enabled in npi
- Reinstall the nvidia driver and nvidia app
All of them did not work. And i found that when the hud fps was in limited by the second monitor, it could go 240hz instantly at times. I am guessing their is a software issue, like the windows and nvidia driver are competiting for the control of the vrr behaviour?

User avatar
Chief Blur Buster
Site Admin
Posts: 12077
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Gsync windowed mode output the wrong vrr framerate to monitor

Post by Chief Blur Buster » 03 Dec 2024, 15:36

Windows limitation, sorry.

Microsoft Windows is a single-Hz compositor until Win11 24H2.

You can't run the metaphorical equivalent of two music beats (two Hz) reliably simultaneously in windowed mode.

OPTIONS
1. Temporarily disable multimonitor (use Windows+P or Control Panel), to temporarily disconnect discordant-Hz monitors.
2. Or use Full Screen Exclusive ONLY on multimonitor system (IMPORTANT IMPORTANT IMPORTANT!!!)
2. Or upgrade to 24H2 and see if the situation improves. (No guarantee)

Special note for non-VRR: Even when both displays are 240Hz, in non-VRR mode, there can be a latency-slewing problem, especially during VSYNC ON, if they're off by a bit (e.g. one display is really 239.99Hz and other display is really 240.01Hz), causing a latency sawtooth of [0...1/240sec] over several (seconds|minutes|hours) as the timing phases of refresh cycle VSYNC's slew against each other. While not a problem for casual gaming, I do not recommend Hz-critical and lag-critical esports gaming in windowed mode or borderless mode on multimonitor. This is a longstanding problem for streamers who do video on one monitor, and game on another monitor.

Use true real FSE, or try 24H2, or Win+P temporarily turn off your 120Hz display.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on: BlueSky | Twitter | Facebook

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Windmill1055
Posts: 3
Joined: 03 Dec 2024, 11:08

Re: Gsync windowed mode output the wrong vrr framerate to monitor

Post by Windmill1055 » 04 Dec 2024, 02:10

Thanks for your helping!
I am currently using 24h2, so the windows still have not solved this issue yet...
But Win+P does help me with this problem. No more need to get into windows settings or nvidia control panel to disable the second monitor.

As for the exclusive full screen mode, it does not have the gsync problem and does provide a smooth gaming experience, but it will also introduce an annoying black screen issue when using alt+tab. The full screen optimization option seems solve the problem for some dx10 and dx11 games, but unfortunately it does not work for some games I am playing.

Bad Windows.

User avatar
RealNC
Site Admin
Posts: 4429
Joined: 24 Dec 2013, 18:32
Contact:

Re: Gsync windowed mode output the wrong vrr framerate to monitor

Post by RealNC » 04 Dec 2024, 02:47

Windmill1055 wrote:
04 Dec 2024, 02:10
Thanks for your helping!
I am currently using 24h2, so the windows still have not solved this issue yet...
But Win+P does help me with this problem. No more need to get into windows settings or nvidia control panel to disable the second monitor.

As for the exclusive full screen mode, it does not have the gsync problem and does provide a smooth gaming experience, but it will also introduce an annoying black screen issue when using alt+tab. The full screen optimization option seems solve the problem for some dx10 and dx11 games, but unfortunately it does not work for some games I am playing.

Bad Windows.
In DX11 games, you can use borderless windowed mode and force the game to use independent flip mode. You can do that with RTSS or with Special K.

With RTSS, you can try to force it by creating an RTSS profile for the game, and then in the profile add:

Code: Select all

[OverrideDXGI]
ForceFlipModel = 1
ForceAllowTearing = 1
This will make windowed modes (borderless or not) bypass DWM and behave like exclusive fullscreen when it comes to vsync, VRR, etc. It might not be compatible with every game.

This is for DX11. DX12 does not need this and DX9 doesn't support it.

With Special K this happens automatically.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

Windmill1055
Posts: 3
Joined: 03 Dec 2024, 11:08

Re: Gsync windowed mode output the wrong vrr framerate to monitor

Post by Windmill1055 » 04 Dec 2024, 08:35

RealNC wrote:
04 Dec 2024, 02:47
Windmill1055 wrote:
04 Dec 2024, 02:10
Thanks for your helping!
I am currently using 24h2, so the windows still have not solved this issue yet...
But Win+P does help me with this problem. No more need to get into windows settings or nvidia control panel to disable the second monitor.

As for the exclusive full screen mode, it does not have the gsync problem and does provide a smooth gaming experience, but it will also introduce an annoying black screen issue when using alt+tab. The full screen optimization option seems solve the problem for some dx10 and dx11 games, but unfortunately it does not work for some games I am playing.

Bad Windows.
In DX11 games, you can use borderless windowed mode and force the game to use independent flip mode. You can do that with RTSS or with Special K.

With RTSS, you can try to force it by creating an RTSS profile for the game, and then in the profile add:

Code: Select all

[OverrideDXGI]
ForceFlipModel = 1
ForceAllowTearing = 1
This will make windowed modes (borderless or not) bypass DWM and behave like exclusive fullscreen when it comes to vsync, VRR, etc. It might not be compatible with every game.

This is for DX11. DX12 does not need this and DX9 doesn't support it.

With Special K this happens automatically.
Really thanks for your helping! It works for me!
I have figured out it is possible to convert a DX9 gaming to vulkan api using DXVK. But that still could not help with bypassing the hud fps limit.

I tried Special K under your advision. And yea, the gsync problem finally gone! The special K detected DXVK and enabled some setting automatically. And magically, the problem is solved. It is now finally possible to play at the highest refresh rate for dx9 games in windowed mode under a dual-monitor setup!

I haved searched the DXVK config with "flip" keyword but found no match. I do not know is their anything like the directx's flip mode in the vulkan api and what exactly did SK do to solve this problem. But anyway, thanks you and the guys developing SK, it really help me a lot!

User avatar
RealNC
Site Admin
Posts: 4429
Joined: 24 Dec 2013, 18:32
Contact:

Re: Gsync windowed mode output the wrong vrr framerate to monitor

Post by RealNC » 04 Dec 2024, 19:41

Windmill1055 wrote:
04 Dec 2024, 08:35
I haved searched the DXVK config with "flip" keyword but found no match. I do not know is their anything like the directx's flip mode in the vulkan api and what exactly did SK do to solve this problem.
SK does this by making use of the Vulkan to DXGI present method conversion of the GPU driver. If it's enabled, that is. On Nvidia, it's in the 3D Settings, the last one at the bottom: "Vulkan/OpenGL present method". If it's set to "prefer layered on DXGI swapchain", then SK can work because it can hook into DXGI. If it's "native", SK can not work at all because it doesn't actually support Vulkan. SK only supports OpenGL and DirectX 11/12 (and some very limited support for 9.)

For OpenGL games, it's actually better to have that set to "native" in the profile for the game in NVCP because SK supports OpenGL.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
RealNC
Site Admin
Posts: 4429
Joined: 24 Dec 2013, 18:32
Contact:

Re: Gsync windowed mode output the wrong vrr framerate to monitor

Post by RealNC » 05 Dec 2024, 06:48

Windmill1055 wrote:
04 Dec 2024, 08:35
I haved searched the DXVK config with "flip" keyword but found no match. I do not know is their anything like the directx's flip mode in the vulkan api and what exactly did SK do to solve this problem. But anyway, thanks you and the guys developing SK, it really help me a lot!
I forgot to mention a third option that works for old games that use DirectX 7, 8 or 9, or the very old 3dfx Glide API: DgVoodoo2. It converts these old APIs to DX11 and provides an option to use discard flip presentation model:

dgvoodoo.png
dgvoodoo.png (68.01 KiB) Viewed 3533 times

To see this option, you need to right-click first inside the window first and enable the option that shows all settings. dgVoodoo is generally the best option for very old games that have issues on modern systems.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

Post Reply