Game: Gsync doesnt trigger at all or only sporadically #318

Open
opened 2026-11-13 22:58:44 +00:00 by Schiggy · 6 comments

Longshot version

v3.0.0 rc3

Channel

Release candidate

What kind of problem

Low fps or stutter

What happened

It seems VRR sometimes has a problem recognizing Hookshot and Longshot

For example when I first tried Hookshot VRR didnt work so I spamed Fullscreen and Windowed and Vsync On and Off until it triggered and then it always worked.
Then I switched to longshot and 1:1 the same problem so again ON OFF ON OFF then it worked.
Then I updated longshot which deleted all my configs and savegames because of portable and I had to do the same again.
Now while testing DLSS FG around i found this issue in a different form but this time only partially because it just sporadically stops working in the middle of gaming therefor it didnt felt quite smooth but also not completly awful since its still working mostly.

I attached a video.
In that Video you can see how my Hz sometimes is 160Hz which basically means Gsync stoped or I excatly hit 80FPS.
I dont hit 80 and while playing the game it feels alright but not super smooth like im used to I can basically see those short moments where gsync stops working.
Then you see me doing the Vsync/Fullscreen Spam Workaround.
Then you see how it never goes 160Hz again because now it constantly works and you can totally feel that too.

This is very hard to showcase and test and prove but theres is definitly a problem with this.
Im no developer I cant tell what the source of it is but maybe you guys have an idea if its because of the Fullscreen Method of Vulkan or Vsync is somewhat buggy idk.
I think a lot of "perceived smoothness" issues some people have could stem from this VRR issue.

EDIT: It seems putting "Vulkan/OpenGL Present Method" to "Prefer layered on DXGI Swapchain" in Nvidia APP fixes this issue completly.
This is funny because the exact same issue was in Ryujinx Emulator and ShadPS4 and needed that same workaround.
But I know 100% that Ryujinx fixed it from their side and I hope you can too.
Nicnl from Discord brought this Workaround to my attention again because he had the same problem.

Where in the game

Everwhere

How often

Every time

Graphics card and driver version

RTX 5070 NVIDIA 617.42

CPU, RAM and operating system

5700X3D 32GB Win 11

Changes from the defaults

No response

longshot_log.txt

longshot_log

Screenshots or video

No response

Before you send it

  • The problem is still there on the newest release or nightly.
  • I searched the open issues for it.
  • I'm not attaching game files, keys, the game's executable, its .bin caches or saves.
### Longshot version v3.0.0 rc3 ### Channel Release candidate ### What kind of problem Low fps or stutter ### What happened It seems VRR sometimes has a problem recognizing Hookshot and Longshot For example when I first tried Hookshot VRR didnt work so I spamed Fullscreen and Windowed and Vsync On and Off until it triggered and then it always worked. Then I switched to longshot and 1:1 the same problem so again ON OFF ON OFF then it worked. Then I updated longshot which deleted all my configs and savegames because of portable and I had to do the same again. Now while testing DLSS FG around i found this issue in a different form but this time only partially because it just sporadically stops working in the middle of gaming therefor it didnt felt quite smooth but also not completly awful since its still working mostly. I attached a video. In that Video you can see how my Hz sometimes is 160Hz which basically means Gsync stoped or I excatly hit 80FPS. I dont hit 80 and while playing the game it feels alright but not super smooth like im used to I can basically see those short moments where gsync stops working. Then you see me doing the Vsync/Fullscreen Spam Workaround. Then you see how it never goes 160Hz again because now it constantly works and you can totally feel that too. This is very hard to showcase and test and prove but theres is definitly a problem with this. Im no developer I cant tell what the source of it is but maybe you guys have an idea if its because of the Fullscreen Method of Vulkan or Vsync is somewhat buggy idk. I think a lot of "perceived smoothness" issues some people have could stem from this VRR issue. EDIT: It seems putting "Vulkan/OpenGL Present Method" to "Prefer layered on DXGI Swapchain" in Nvidia APP fixes this issue completly. This is funny because the exact same issue was in Ryujinx Emulator and ShadPS4 and needed that same workaround. But I know 100% that Ryujinx fixed it from their side and I hope you can too. Nicnl from Discord brought this Workaround to my attention again because he had the same problem. ### Where in the game Everwhere ### How often Every time ### Graphics card and driver version RTX 5070 NVIDIA 617.42 ### CPU, RAM and operating system 5700X3D 32GB Win 11 ### Changes from the defaults _No response_ ### longshot_log.txt [longshot_log](/attachments/5102510c-187d-4c94-b10b-4611a5edaf89) ### Screenshots or video _No response_ ### Before you send it - [x] The problem is still there on the newest release or nightly. - [x] I searched the open issues for it. - [x] I'm not attaching game files, keys, the game's executable, its .bin caches or saves.
Contributor

Likely cause found, on an RTX 5090 + LG UltraGear 5120x2160 @ 165 Hz (G-Sync), Windows 11, Longshot main 514591a3: G-Sync engages whenever the swapchain is FIFO, and never with mailbox or immediate. V-Sync Auto without frame generation picks mailbox (gpu/vk/vk_main.cpp, the present-mode choice), so it gets no VRR.

The user watched the monitor's own refresh readout while the game stood in Kokiri, ~90 s per arm, frame generation off unless noted:

Arm Swapchain (log) Monitor Game fps
Fullscreen, V-Sync Auto mailbox fixed at 165 Hz 69–71
Fullscreen, RX_VK_FIFO=1 (V-Sync On) fifo follows the fps 69.9
Windowed 1600x900, RX_VK_FIFO=1 fifo follows the fps 66–69
Fullscreen, DLSS frame generation 2x, Auto (which picks FIFO with DLSS-G) fifo follows the fps 64–65 (~130 shown)
Fullscreen, RX_VK_IMMEDIATE=1 (V-Sync Off) immediate fixed at 165 Hz 71–75

An earlier PresentMon capture agrees. The non-frame-generation runs (mailbox) were all "Composed: Copy with GPU GDI", with displayed intervals on the fixed 6.06 ms grid. The DLSS-G runs were Independent Flip with variable intervals.

  • Workaround: Insert > V-Sync: On gives VRR in fullscreen and in a window, without changing NVIDIA settings. It also explains why this report's NVIDIA "Prefer layered on DXGI swapchain" fixes it: that changes how the driver presents mailbox.
  • Possible fix: V-Sync Auto picks FIFO on NVIDIA under Windows, as it already does for DLSS frame generation (fg_fifo).
  • Not tested yet: other vendors, and whether Auto's mailbox choice still matters elsewhere.
  • Coming: a measured A/B on the same PC (fps, p99 and PresentMon present modes, 2 rounds each) and an opt-in VK_EXT_full_screen_exclusive arm.
Likely cause found, on an RTX 5090 + LG UltraGear 5120x2160 @ 165 Hz (G-Sync), Windows 11, Longshot main 514591a3: **G-Sync engages whenever the swapchain is FIFO, and never with mailbox or immediate.** V-Sync **Auto** without frame generation picks **mailbox** (`gpu/vk/vk_main.cpp`, the present-mode choice), so it gets no VRR. The user watched the monitor's own refresh readout while the game stood in Kokiri, ~90 s per arm, frame generation off unless noted: | Arm | Swapchain (log) | Monitor | Game fps | |---|---|---|---| | Fullscreen, V-Sync Auto | mailbox | fixed at 165 Hz | 69–71 | | Fullscreen, `RX_VK_FIFO=1` (V-Sync On) | fifo | follows the fps | 69.9 | | Windowed 1600x900, `RX_VK_FIFO=1` | fifo | follows the fps | 66–69 | | Fullscreen, DLSS frame generation 2x, Auto (which picks FIFO with DLSS-G) | fifo | follows the fps | 64–65 (~130 shown) | | Fullscreen, `RX_VK_IMMEDIATE=1` (V-Sync Off) | immediate | fixed at 165 Hz | 71–75 | An earlier PresentMon capture agrees. The non-frame-generation runs (mailbox) were all "Composed: Copy with GPU GDI", with displayed intervals on the fixed 6.06 ms grid. The DLSS-G runs were Independent Flip with variable intervals. - **Workaround:** **Insert > V-Sync: On** gives VRR in fullscreen and in a window, without changing NVIDIA settings. It also explains why this report's NVIDIA "Prefer layered on DXGI swapchain" fixes it: that changes how the driver presents mailbox. - **Possible fix:** V-Sync Auto picks FIFO on NVIDIA under Windows, as it already does for DLSS frame generation (`fg_fifo`). - **Not tested yet:** other vendors, and whether Auto's mailbox choice still matters elsewhere. - **Coming:** a measured A/B on the same PC (fps, p99 and PresentMon present modes, 2 rounds each) and an opt-in `VK_EXT_full_screen_exclusive` arm.
Contributor

Follow-up with the measured runs and the exclusive-fullscreen arms from my comment above. G-Sync engages exactly when the swapchain is FIFO. Exclusive fullscreen adds nothing, and FIFO costs no fps here. So the fix is for V-Sync Auto to pick FIFO on NVIDIA under Windows.

Setup:

  • RTX 5090, NVIDIA 621.14, LG UltraGear 5120x2160 @ 165 Hz, Windows 11.
  • Longshot main cf605c85, plus an opt-in RX_VK_FSE=1 switch for VK_EXT_full_screen_exclusive. Without the switch it is main.
  • Output 2048x1152, frame generation off (except E), fps cap 240, borderless fullscreen (except Bw).
  • The same moving route in Kokiri, 125-s runs, 2 interleaved rounds. Runs that lost the foreground partway through were rerun.
  • PresentMon (--v2_metrics) recorded every run. The user read the monitor's own refresh readout for the arms marked so.
  • The G-SYNC setting is inferred to be "windowed and full screen mode", since VRR engaged in a 1600x900 window. The Vulkan/OpenGL present method was left at Auto.
Arm Swapchain (game log) PresentMon: runtime, present mode, sync interval, tearing Shown times on the 165 Hz grid Monitor (user's readout) VRR fps (round 0 / 1) p99 ms Frame-time sd ms
A: V-Sync Auto mailbox Other, Composed: Copy with GPU GDI, -, no 93–94% fixed 165 no 70.4 (72.8 / 68.0) 20.5 2.37
B: RX_VK_FIFO=1 (V-Sync On) fifo DXGI, Hardware Composed: Independent Flip, 0, yes 33–35% follows the fps yes 74.1 (76.4 / 71.8) 20.0 2.22
C: RX_VK_FSE=1, Auto mailbox; exclusive refused (VK_ERROR_INITIALIZATION_FAILED), then an ordinary swapchain Other, Composed: Copy with GPU GDI, -, no 93% fixed 165 no 72.4 (73.8 / 71.0) 19.9 2.38
D: RX_VK_FSE=1 + RX_VK_FIFO=1 fifo; exclusive acquired and held DXGI, Hardware Composed: Independent Flip, 0, yes 34% follows the fps yes 74.6 (75.6 / 73.5) 18.9 2.06
Ci: RX_VK_FSE=1 + RX_VK_IMMEDIATE=1 immediate; exclusive acquired Other, Hardware: Legacy Flip, 0, yes 10% fixed 165 (tears) no 75.9 (one run) 19.3 2.19
F: RX_VK_IMMEDIATE=1 (V-Sync Off) immediate Other, Composed: Copy with GPU GDI, -, no (an earlier capture on main: Legacy Flip) 93% fixed 165 no 71.8 (71.6 / 72.0) 19.7 2.16
Bw: 1600x900 window, RX_VK_FIFO=1 fifo DXGI, Hardware Composed: Independent Flip, 1, no 93% follows the fps* yes* 72.2 (72.2 / 72.2) 21.1 2.58
E: DLSS frame generation 2x, Auto (DLSS + FG preset, cap 165) fifo (Auto picks FIFO under DLSS-G) DXGI, Hardware Composed: Independent Flip, 0, yes 48–52% (~161 fps shown, near the refresh rate, so the grid says little) follows the fps yes 71.1 rendered (~161 shown) 20.6 2.37 (shown: 0.99)

* For Bw, the monitor was read in the earlier watch session at the same window size, not during these runs. PresentMon's timing for Bw looks like a fixed refresh (sync interval 1, shown times on the grid), yet the monitor followed the fps. So present timing alone doesn't settle VRR. The monitor's readout and the present mode do.

What it shows:

  • VRR follows FIFO, and FIFO is the only mode the driver puts on DXGI.
    • Every FIFO swapchain shows up in PresentMon with the DXGI runtime, as Independent Flip.
    • Mailbox and immediate stay on the native path ("Other"), where DWM composes them with a GDI copy at a fixed 165 Hz.
    • My reading (inferred, not confirmed by NVIDIA): with the present method on Auto, the driver layers only FIFO swapchains on DXGI. The report's "Prefer layered on DXGI swapchain" layers mailbox too, which is why it works.
  • Exclusive fullscreen isn't needed.
    • D (exclusive + FIFO) matches B (FIFO alone) in present mode, timing and the monitor's readout.
    • The driver refuses exclusive mode for mailbox, so C ends up as A.
    • Exclusive mode with immediate gets Legacy Flip but tears at a fixed 165 Hz.
  • FIFO doesn't cost fps here. B ran 74.1 fps against A's 70.4, p99 20.0 against 20.5 ms. A alone moved from 72.8 to 68.0 between rounds, so read it as no loss rather than a gain.

Proposed fix: V-Sync Auto picks FIFO on NVIDIA under Windows, as it already does under DLSS frame generation (fg_fifo). Until then, Insert > V-Sync: On is the workaround, with no driver settings changed.

Not covered:

  • Input latency.
  • AMD and Intel.
  • Monitors without VRR.
  • A game that reaches the refresh rate: FIFO then holds it at 165 and queues frames. With G-Sync, a cap just below the refresh rate is the usual advice.
Follow-up with the measured runs and the exclusive-fullscreen arms from my comment above. **G-Sync engages exactly when the swapchain is FIFO.** Exclusive fullscreen adds nothing, and FIFO costs no fps here. So the fix is for V-Sync Auto to pick FIFO on NVIDIA under Windows. **Setup:** - RTX 5090, NVIDIA 621.14, LG UltraGear 5120x2160 @ 165 Hz, Windows 11. - Longshot main cf605c85, plus an opt-in `RX_VK_FSE=1` switch for `VK_EXT_full_screen_exclusive`. Without the switch it is main. - Output 2048x1152, frame generation off (except E), fps cap 240, borderless fullscreen (except Bw). - The same moving route in Kokiri, 125-s runs, 2 interleaved rounds. Runs that lost the foreground partway through were rerun. - PresentMon (`--v2_metrics`) recorded every run. The user read the monitor's own refresh readout for the arms marked so. - The G-SYNC setting is **inferred** to be "windowed and full screen mode", since VRR engaged in a 1600x900 window. The Vulkan/OpenGL present method was left at **Auto**. | Arm | Swapchain (game log) | PresentMon: runtime, present mode, sync interval, tearing | Shown times on the 165 Hz grid | Monitor (user's readout) | VRR | fps (round 0 / 1) | p99 ms | Frame-time sd ms | |---|---|---|---|---|---|---|---|---| | A: V-Sync Auto | mailbox | Other, Composed: Copy with GPU GDI, -, no | 93–94% | fixed 165 | **no** | 70.4 (72.8 / 68.0) | 20.5 | 2.37 | | B: `RX_VK_FIFO=1` (V-Sync On) | fifo | DXGI, Hardware Composed: Independent Flip, 0, yes | 33–35% | follows the fps | **yes** | 74.1 (76.4 / 71.8) | 20.0 | 2.22 | | C: `RX_VK_FSE=1`, Auto | mailbox; exclusive refused (`VK_ERROR_INITIALIZATION_FAILED`), then an ordinary swapchain | Other, Composed: Copy with GPU GDI, -, no | 93% | fixed 165 | **no** | 72.4 (73.8 / 71.0) | 19.9 | 2.38 | | D: `RX_VK_FSE=1` + `RX_VK_FIFO=1` | fifo; exclusive acquired and held | DXGI, Hardware Composed: Independent Flip, 0, yes | 34% | follows the fps | **yes** | 74.6 (75.6 / 73.5) | 18.9 | 2.06 | | Ci: `RX_VK_FSE=1` + `RX_VK_IMMEDIATE=1` | immediate; exclusive acquired | Other, Hardware: Legacy Flip, 0, yes | 10% | fixed 165 (tears) | **no** | 75.9 (one run) | 19.3 | 2.19 | | F: `RX_VK_IMMEDIATE=1` (V-Sync Off) | immediate | Other, Composed: Copy with GPU GDI, -, no (an earlier capture on main: Legacy Flip) | 93% | fixed 165 | **no** | 71.8 (71.6 / 72.0) | 19.7 | 2.16 | | Bw: 1600x900 window, `RX_VK_FIFO=1` | fifo | DXGI, Hardware Composed: Independent Flip, 1, no | 93% | follows the fps* | **yes*** | 72.2 (72.2 / 72.2) | 21.1 | 2.58 | | E: DLSS frame generation 2x, Auto (DLSS + FG preset, cap 165) | fifo (Auto picks FIFO under DLSS-G) | DXGI, Hardware Composed: Independent Flip, 0, yes | 48–52% (~161 fps shown, near the refresh rate, so the grid says little) | follows the fps | **yes** | 71.1 rendered (~161 shown) | 20.6 | 2.37 (shown: 0.99) | \* For Bw, the monitor was read in the earlier watch session at the same window size, not during these runs. PresentMon's timing for Bw looks like a fixed refresh (sync interval 1, shown times on the grid), yet the monitor followed the fps. So present timing alone doesn't settle VRR. The monitor's readout and the present mode do. **What it shows:** - **VRR follows FIFO, and FIFO is the only mode the driver puts on DXGI.** - Every FIFO swapchain shows up in PresentMon with the DXGI runtime, as Independent Flip. - Mailbox and immediate stay on the native path ("Other"), where DWM composes them with a GDI copy at a fixed 165 Hz. - My reading (inferred, not confirmed by NVIDIA): with the present method on Auto, the driver layers only FIFO swapchains on DXGI. The report's "Prefer layered on DXGI swapchain" layers mailbox too, which is why it works. - **Exclusive fullscreen isn't needed.** - D (exclusive + FIFO) matches B (FIFO alone) in present mode, timing and the monitor's readout. - The driver refuses exclusive mode for mailbox, so C ends up as A. - Exclusive mode with immediate gets Legacy Flip but tears at a fixed 165 Hz. - **FIFO doesn't cost fps here.** B ran 74.1 fps against A's 70.4, p99 20.0 against 20.5 ms. A alone moved from 72.8 to 68.0 between rounds, so read it as no loss rather than a gain. **Proposed fix:** V-Sync Auto picks FIFO on NVIDIA under Windows, as it already does under DLSS frame generation (`fg_fifo`). Until then, **Insert > V-Sync: On** is the workaround, with no driver settings changed. **Not covered:** - Input latency. - AMD and Intel. - Monitors without VRR. - A game that reaches the refresh rate: FIFO then holds it at 165 and queues frames. With G-Sync, a cap just below the refresh rate is the usual advice.
Author

"Proposed fix: V-Sync Auto picks FIFO on NVIDIA under Windows, as it already does under DLSS frame generation (fg_fifo). Until then, Insert > V-Sync: On is the workaround, with no driver settings changed."

But can you also fix Vsync Off to Fifo or whatever it needs to work good with VRR ?

I never use Vsync anywhere I just cap my Framerate 4FPS under my max refresh rate for every game and let VRR run constantly.
I think a lot of people dont use Vsync either and would put that option to OFF then wondering why their game doesnt feel so smooth.

Also I just tested Vsync ON and restarted the game
I still have this issue that VRR is only working sporadically.
I feel like everytime I hit 60FPS ingame it turns off or something im not sure really.

"Proposed fix: V-Sync Auto picks FIFO on NVIDIA under Windows, as it already does under DLSS frame generation (fg_fifo). Until then, Insert > V-Sync: On is the workaround, with no driver settings changed." But can you also fix Vsync Off to Fifo or whatever it needs to work good with VRR ? I never use Vsync anywhere I just cap my Framerate 4FPS under my max refresh rate for every game and let VRR run constantly. I think a lot of people dont use Vsync either and would put that option to OFF then wondering why their game doesnt feel so smooth. Also I just tested Vsync ON and restarted the game I still have this issue that VRR is only working sporadically. I feel like everytime I hit 60FPS ingame it turns off or something im not sure really.
Collaborator

From Thefailsafe on Discord:

Thefailsafe reports a related VRR/G-Sync issue with frame generation x2 and a 100 FPS cap on a 240 Hz display: refresh jumps back to 240 Hz and fluctuates instead of tracking. They say async, Reflex, and Longshot's in-menu cap do not sync correctly; RTSS frame limiter set to “front edge sync” works. Attached screenshot shows RTSS settings with its framerate limiter enabled and set to front edge sync. Hardware, driver, Longshot version/channel, OS, and Longshot log not provided.

From [Thefailsafe on Discord](https://discord.com/channels/1569849200047427645/1571491379367120916/1571491379367120916): Thefailsafe reports a related VRR/G-Sync issue with frame generation x2 and a 100 FPS cap on a 240 Hz display: refresh jumps back to 240 Hz and fluctuates instead of tracking. They say async, Reflex, and Longshot's in-menu cap do not sync correctly; RTSS frame limiter set to “front edge sync” works. Attached screenshot shows RTSS settings with its framerate limiter enabled and set to front edge sync. Hardware, driver, Longshot version/channel, OS, and Longshot log not provided.
Collaborator

From Thefailsafe on Discord:

Thefailsafe followed up that RTSS's “front edge sync” is not a reliable workaround: it appeared to work temporarily, but the same VRR/refresh-rate issue returned. Screenshot of RTSS settings was provided; it shows the limiter enabled and set to “front edge sync.”

From [Thefailsafe on Discord](https://discord.com/channels/1569849200047427645/1571491379367120916/1571491379367120916): Thefailsafe followed up that RTSS's “front edge sync” is not a reliable workaround: it appeared to work temporarily, but the same VRR/refresh-rate issue returned. Screenshot of RTSS settings was provided; it shows the limiter enabled and set to “front edge sync.”
Collaborator

From Thefailsafe on Discord:

Additional diagnostics: RTX 5090, NVIDIA driver 621.24; Longshot nightly-187-9e6f231d on Windows (log shows 3840×2160 output). With DLSS frame generation x2 and a 100 FPS cap on a 240 Hz display, VRR refresh tracking fluctuates and jumps to 240 Hz. RTSS “front edge sync” initially seemed to help but the issue returned. The attached Discord longshot_log.txt was reviewed.

From [Thefailsafe on Discord](https://discord.com/channels/1569849200047427645/1571491379367120916/1571493995111120896): Additional diagnostics: RTX 5090, NVIDIA driver 621.24; Longshot nightly-187-9e6f231d on Windows (log shows 3840×2160 output). With DLSS frame generation x2 and a 100 FPS cap on a 240 Hz display, VRR refresh tracking fluctuates and jumps to 240 Hz. RTSS “front edge sync” initially seemed to help but the issue returned. The attached Discord longshot_log.txt was reviewed.
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot#318
No description provided.