Page 1 of 1

G-sync, Nvidia Reflex with Vulkan

Posted: 30 Jul 2022, 05:40
by Diasho
In most of my games I am using the following setup so that the fps are in the g-sync range:
- V-sync in NVCP - On
- Monitor technology in NVCP - G-Sync compatible
- G-sync in NVCP - On, for fullscreen mode
- Preferred refresh rate in NVCP - highest available
- Nvidia reflex in-game - On (or on+boost)
- V-sync - off

As expected from nvidia reflex, it caps my fps slightly below max refresh rate, which is 138 fps for 144 hz monitor. Everything is fine

But recently I started playing Rainbow Six Siege, which doesn't have the nvidia reflex option for dx11. Instead - it has nvidia reflex for Vulkan
The issue is that for Vulkan, using the abovementioned settings, my FPS don't cap to 138, which should be automatically done by the nvidia reflex as it is in some other games like e.g. Apex Legends, Fortnite or Valorant

What should I do in this case? Why reflex doesn't cap the fps in Vulkan?
Should I just go play with LLM on ultra on the dx11 version instead? It actually caps fps to 138 in this case
But for the Vulkan version, only using the in-game FPS limiter makes it possible so that FPS don't go above 138.

My CPU and GPU are Ryzen 5 3600 and RTX 2070, so I believe using Vulkan is more beneficial.

Re: G-sync, Nvidia Reflex with Vulkan

Posted: 30 Jul 2022, 08:37
by jorimt
Diasho wrote:
30 Jul 2022, 05:40
What should I do in this case? Why reflex doesn't cap the fps in Vulkan?
Should I just go play with LLM on ultra on the dx11 version instead? It actually caps fps to 138 in this case
But for the Vulkan version, only using the in-game FPS limiter makes it possible so that FPS don't go above 138.
Reflex implementation is game/engine-dependent, so you'd have to ask the devs why they aren't auto FPS limiting with Reflex enabled (could be a difference with the Vulkan API for all we know).

As for what you should do, use the in-game limiter instead. When Reflex does auto limit, it's using an engine-level limiter anyway, so there should be little to no difference in that respect.

Also, for reference, if your system can maintain a constant 138 FPS at 144Hz, Reflex won't do much for latency anyway; it only reduces latency when the framerate can't reach your set limit due to a maxed GPU, at which point it prevents an increase of pre-rendered frames in the render queue by setting a dynamic framerate limit (slightly below the currently achievable average framerate) to keep the GPU from being too busy, regardless of whether it sets a maximum FPS limit when the GPU isn't maxed, the latter of which is simply there to ensure G-SYNC remains engaged.

Re: G-sync, Nvidia Reflex with Vulkan

Posted: 30 Jul 2022, 09:30
by Diasho
Thank you for the response. :D
I will use the in-game limiter then or just live tearing on uncapped fps.
It might be indeed just an implementation difference between Vulkan and dx11 that for Vulkan Nvidia reflex doesn't cap fps.

But overall there is no reason to keep reflex disabled rather than enabled? It's just that it might not provide latency improvements in case fps don't fluctuate?

Re: G-sync, Nvidia Reflex with Vulkan

Posted: 30 Jul 2022, 15:12
by jorimt
Diasho wrote:
30 Jul 2022, 09:30
But overall there is no reason to keep reflex disabled rather than enabled? It's just that it might not provide latency improvements in case fps don't fluctuate?
Barring the maximum auto FPS limit that is usually instituted with G-SYNC + V-SYNC + Reflex (138 FPS at 144Hz), which is exclusively there to keep the framerate within the refresh rate to ensure G-SYNC remains active, Reflex will only further reduce latency whenever GPU usage is maxed; when GPU usage is below ~99%, Reflex effectively has nothing to reduce.

There are different forms of latency, and Reflex specifically aims to reduce render queue latency between the CPU and GPU, which can increase when the GPU is too busy to receive new frame information from the CPU in real-time, resulting in the CPU creating more pre-rendered frames in the render queue while waiting for the GPU. If the GPU isn't busy, then those extra pre-rendered frames won't be created, hence Reflex will have nothing to reduce.

So yes, in the cases your system can sustain the average framerate at your set limit 99% of the time, you can still keep Reflex enabled as fallback for those rare times the GPU can't allow maintaining of the framerate at that limit. I.E. any time your average framerate dips below your set limit is when Reflex will further reduce latency.

1. G-SYNC + V-SYNC + Reflex auto 138 FPS limit + 138 or higher average FPS @144Hz.
2. G-SYNC + V-SYNC + in-game 138 FPS limit + 138 or higher average FPS @144Hz.

#1 & #2 = same latency.

3. G-SYNC + V-SYNC + Reflex auto 138 FPS limit + 137 or under average FPS @144Hz.
4. G-SYNC + V-SYNC + in-game 138 FPS limit + 137 or under average FPS @144Hz.

#3 = less latency than #4.

Basically, for the lowest latency in synced scenarios, you want the FPS limiter to be the limiting factor, not the refresh rate or GPU, as to keep the render queue as clear of extra buffers as possible; the less build-up there is in the render queue, the closer input/delivery is to 1:1.

Re: G-sync, Nvidia Reflex with Vulkan

Posted: 06 Aug 2022, 11:20
by Kyouki
This was actually a question I had today or wanted to make a topic about - I noticed Vulkan based games wouldn't engage Gsync (or ulmb, suspect because Gsync also doesn't work.)

Would this be based on the application design? Or is there something else that Vulkan API doesn't allow to do with the monitor to engage it.
DirectX vs Vulkan seems to behave differently (understandable) where it won't trigger or engage Gsync modes.

Hoping someone here has maybe some more information on that topic.

Edit actually found this link to try:
https://old.reddit.com/r/yuzu/comments/ ... x/i5itssq/