Overriding EDID makes VRR stop working under WAYLAND -> ( "vrr_capable" (immutable): range [0, 1] = 0 )

I use the following service to override the edid on boot.

/etc/systemd/system/edid.service

[Unit]
Description=EDID Override Service
Before=sddm.service
RequiresMountsFor=/usr/lib/firmware/edid/lg.bin

[Service]
Type=oneshot
ExecStart=/bin/sh -c ‘for edid_path in /sys/kernel/debug/dri/*/HDMI-A-1/edid_override; do if [ -f “$edid_path” ]; then cat /usr/lib/firmware/edid/lg.bin > “$edid_path”; fi; done’
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

but after the override Nvidia driver disables VRR.

These are drm_info outputs:
stock.log (114.4 KB)
“vrr_capable” (immutable): range [0, 1] = 1

after override
override.log (115.7 KB)
“vrr_capable” (immutable): range [0, 1] = 0

EDID I’m using for override.
lg.bin.zip (351 Bytes)

The very same EDID override file VRR works fine in X11.

/etc/X11/xorg.conf.d/00-nvidia.conf

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
Option “Stereo” “0”
Option “nvidiaXineramaInfoOrder” “DFP-2”
Option “metamodes” “3840x2160_120 +0+0 {AllowGSYNCCompatible=On}”
Option “SLI” “Off”
Option “CustomEDID” “HDMI-0:/usr/lib/firmware/lg.bin”
Option “MultiGPU” “Off”
Option “BaseMosaic” “off”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Section “Device”
Identifier “3090”
Driver “nvidia”
Option “ModeValidation” “AllowNonEdidModes”
EndSection

So… someone… any suggestion ??

I haven’t tested X11 yet but I can reproduce this on NVIDIA 560.31.02 even by overriding the stock EDID with itself.
Tested on Fedora Rawhide, GNOME 47~beta

nvidia-bug-report.log.gz (718.6 KB)

I did that exact same test ! Also confirm.

Hi @adolfotregosa @mattiaformichetti
Thanks for reporting issue to us, I have filed a bug 4797139 internally for tracking purpose.
Also, could you please confirm if there was any last passing driver.

1 Like


adolfotregosa

1m

Cannot do that. We need the very latest driver because of full wayland support

I remember trying to alter my monitor’s VRR range in the past to decrease some flickering issues that might be related to a problematic LFC implementation; While I still have to report that properly I’m almost certain that this isn’t a recent regression.

I could retest older drivers if needed, in which case please suggest relevant versions, but, as far as I can remember, it didn’t work in the 555 branch and, potentially, 550.
The original discussion started in the GNOME Shell Matrix chat on the 10th of June so it’s likely that I was using one of the 555 drivers.

I can confirm the same behavior but for me it happens only on one of the two monitors but I do it in a different way (using the kernel switches). This started happening on 555. On 550 both monitors were showing VRR capable when EDID was passed like that. Now only the DP-2 shows as capable.

Interesting, I remember trying that at the time and it wasn’t working either.
Also, I only have DP 1.2 to test, my other monitor is HDMI 2.0 and, as far as I know, only AMD supports VRR on 2.0.

This is the VRR supported monitor for reference.

I also notice this when overriding EDID.

nvidia 560.35.03 , not fixed

I can also confirm, just in case anything changed, here’s a new nvidia-bug-report.log.gz (827.4 KB)

Also, unrelated but I really appreciate how communicative NVIDIA developers have been recently, thank you.

This is still being investigated at our end, shall update once there is further feedback from engineering.

2 Likes

any update on this from engineering I would like to reduce my range to prevent flickering on my oled from vrr?

Are there any news if it is going to be fixed? The bug is still present on the 565 driver.

Any news on this? Still happening on driver 565.77 and it’s one of the few if not the only bug preventing me from fully switching to Wayland.

Any word it might be fixed in the upcoming 570 driver?

I tried briefly the leaked 570 driver and the issue persist. No VRR still.

1 Like

Is there any feedback from engineering regarding this issue?

It would be great to have this fixed, specially since we now finally have working multi-monitor VRR in driver 570. But that completely goes to waste if we need to override the EDID in one of our monitors, due to this bug completely disabling VRR.

has this been fixed on 570.86.16 ??? Anyone ??

6 months… c’mon guys

EDID override for me would not be needed if they simply added 24Hz to the supported refresh rates list like any intel and amd card does.

e.g Intel UHD 770.

Just tried it, no VRR on 570.86.16 (DisplayPort).
The new driver also broke HDMI 2.1 VRR with or without custom EDID, so we’re worse than before. Great.

I came here, because I installed the 570 driver on my Arch system (KDE).

Because the VRR range of my BenQ EX3203R is not the best, I edited the boot parameters to load a custom edid. After rebooting, the Adaptive Sync option in KDE is gone.