VRR with 2 Monitors (Nvidia)

Hyprland version
Hyprland 0.50.1 built from branch  at commit 4e242d086e20b32951fdc0ebcbfb4d41b5be8dcc

VRR with 2 Monitors is not working with Nvidia

Hello,
the current Nvidia driver has support for vrr on wayland with multiple monitors. I have tested this on the same machine with KDE where VRR works as expected.
In Hyprland however VRR does seem to engage, but the display is stuck at the maximum refresh rate (verified via monitor OSD).

Here is all relevant information from my system:

Graphics:
  Device-1: NVIDIA AD103 [GeForce RTX 4080] driver: nvidia v: 575.64.05
  Display: wayland server: X.Org v: 24.1.8 with: Xwayland v: 24.1.8
    compositor: Hyprland v: 0.50.1 driver: gpu: nvidia,nvidia-nvswitch
    resolution: 1: 3840x2160~240Hz 2: 3440x1440~165Hz
  API: EGL v: 1.5 drivers: nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 575.64.05
    renderer: NVIDIA GeForce RTX 4080/PCIe/SSE2
  API: Vulkan v: 1.4.321 drivers: nvidia surfaces: N/A
  Info: Tools: api: eglinfo, glxinfo, vulkaninfo
    gpu: nvidia-settings,nvidia-smi wl: nwg-displays
    x11: xdpyinfo, xprop, xrandr

I have set “vrr = 2” in my Hyprland configuration. When running a fullscreen game or application hyprctl monitors states that vrr is enabled:

Monitor DP-1 (ID 0):
	[email protected] at 2752x0
	description: Dell Inc. AW3225QF 7XM3YZ3
	make: Dell Inc.
	model: AW3225QF
	serial: 7XM3YZ3
	active workspace: 8 (8)
	special workspace: 0 ()
	reserved: 0 37 0 0
	scale: 1.50
	transform: 0
	focused: no
	dpmsStatus: 1
	vrr: true
	solitary: 5604c6a98ee0
	activelyTearing: false
	directScanoutTo: 0
	disabled: false
	currentFormat: XRGB8888
	mirrorOf: none
	availableModes: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] 

VRR is definitely getting activated because i also experience a short black screen when switching from fullscreen apps to another workspace. This is afaik a current Nvidia driver bug when enabling vrr.

is it always stuck or is there a specific condition required?

Pretty much always stuck. However for a very brief moment when switching it fluctuates (under 1s). I made a quick video with my monitors osd if it helps:

And I assume you are sure the game is not at 240fps?

Yep, game is capped at 144. In busy areas it drops below. Screen stays at 240Hz.

dunno then tbh. I rarely use vrr. I am jealous of a 4k240 monitor though.

OK, thanks for looking into it anyway.
Yeah It’s a pretty nice monitor. I’m just not sure how long it’ll last being OLED and all :smiley:

Sharing my experience with an Nvidia RTX 3070, driver ver 575.64.05.

My main monitor is 2560x1440@175Hz, with FreeSync support, and my secondary monitor is some random 1080p Philips without any form of VRR support.

VRR seems to work fine on my end. There is no short black screen when going between fullscreen VRR games and workspaces for me.

Are your games running in winewayland? From what I know those currently won’t activate vrr when vrr = 2, as they aren’t correctly identified as a fullscreen window (this is being fixed in this PR: Solitary clients with single subsurface & verbose solitary/tearing/DS checks by UjinT34 · Pull Request #11228 · hyprwm/Hyprland · GitHub)

video below showcasing VRR working on Celeste, native wayland

Interesting. No I’m running them through XWayland. I have the same issue on Linux natives games aswell.
Maybe because both my monitors support vrr ? I also tried vrr = 1, doesn’t work either way sadly.

i think you can set vrr per monitor, maybe try to only enable it for your primary? Monitors – Hyprland Wiki

__GL_VRR_ALLOWED=1 do you have this env var? Not sure if it even does anything but it might affect for games running in OpenGL