How to lower VRR frequency range lower limit on GNU/Linux (Wayland/Wlroots)?

Talk about AMD's FreeSync and VESA AdaptiveSync, which are variable refresh rate technologies. They also eliminate stutters, and eliminate tearing. List of FreeSync Monitors.
Post Reply
User avatar
vanfanel
Posts: 4
Joined: 24 Mar 2025, 11:30

How to lower VRR frequency range lower limit on GNU/Linux (Wayland/Wlroots)?

Post by vanfanel » 24 Mar 2025, 14:24

Hi there,

This is my first post on Blurbusters. I have heard very good things about this forum for sharp-eyed people like me 8-)

I have a Viewsonic XG2401 monitor which has a default refresh rate range of 48-146 according to edid-decode:

Code: Select all

Display Range Limits:
      Monitor ranges (Bare Limits): 48-146 Hz V, 180-180 kHz H, max dotclock 340 MHz
    Display Product Name: 'XG2401 SERIES'
However, this monitor has a weird refresh rate behaviour at low framerates like ~60Hz games.

This is already known on this forum:
viewtopic.php?t=13250
The solution is also known: tweak the LFC lower range to 30 or 36 hz, according to @yamaci1775 in the mentioned thread.
However, he does that using a tool called CRU which is a Windows thing.

So, what does CRU do under the hood? Apparently, it simply hacks around the EDID values on the Windows registry:
"CRU creates software EDID overrides in the registry and does not modify the hardware."

...so I would have to override the EDID of the Viewsonic XG2401 monitor to lower lower limit in the VRR range, I guess.

I've got the monior EDID, which on GNU/Linux lives in /sys/class/drm/card0-DP-1/edid, and I tried to edit it using "AW EDID Editor", which is a Windows program but works perfectly using WINE.

According to Archlinux instructions to change VRR range limits, in order to change the VRR range of the monitor I have to change the values in:
EDID Base > Detailed Descriptor > Block Descriptor > Block 2
and there I have to change:
Block Descriptor Type > Display > Range Limits

The problem is that the values in Range Limits are empty:
2025-03-24-201932_1920x1080_scrot.png
2025-03-24-201932_1920x1080_scrot.png (132.59 KiB) Viewed 879 times
Any idea on how to proceed? I'm almost there apparently, but not quite there...
If this part of the EDID is empty, how does drm/wayland/wlroots know about the range that edid-decode is showing me? :roll:

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

Re: How to lower VRR frequency range lower limit on GNU/Linux (Wayland/Wlroots)?

Post by RealNC » 25 Mar 2025, 09:30

You can try using CRU in Wine if it at least runs, you can import the EDID file you have, edit it, and export it to a format that you might be able to provide as an EDID override to the GPU driver. The Nvidia Linux driver has an option to supply a custom EDID file. I don't know about AMD.
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
vanfanel
Posts: 4
Joined: 24 Mar 2025, 11:30

Re: How to lower VRR frequency range lower limit on GNU/Linux (Wayland/Wlroots)?

Post by vanfanel » 25 Mar 2025, 10:58

RealNC wrote:
25 Mar 2025, 09:30
You can try using CRU in Wine if it at least runs, you can import the EDID file you have, edit it, and export it to a format that you might be able to provide as an EDID override to the GPU driver. The Nvidia Linux driver has an option to supply a custom EDID file. I don't know about AMD.
Hey!! Look who's here, the author of the best dosbox core for RetroArch! This is indeed a very small world! I am glad to see you here, sir :)

I don't have anything NVidia, nor will I ever buy anything from that company (I am very happy with having MESA covering all my OpenGL/Vulkan needs), so I don't quite understand your suggestion: are you saying CRU can export the EDID to a binary format that is usable on GNU/Linux?

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

Re: How to lower VRR frequency range lower limit on GNU/Linux (Wayland/Wlroots)?

Post by RealNC » 26 Mar 2025, 10:27

vanfanel wrote:
25 Mar 2025, 10:58
Hey!! Look who's here, the author of the best dosbox core for RetroArch! This is indeed a very small world! I am glad to see you here, sir :)
Hi :mrgreen:
I don't have anything NVidia, nor will I ever buy anything from that company (I am very happy with having MESA covering all my OpenGL/Vulkan needs), so I don't quite understand your suggestion: are you saying CRU can export the EDID to a binary format that is usable on GNU/Linux?
Yes. It has import and export functions. You can import a file, edit it, and then export it again to various file formats. I was just saying that the Nvidia Linux driver can be configured to use such an EDID file and that maybe something equivalent is possible on AMD.
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
Chief Blur Buster
Site Admin
Posts: 11978
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: How to lower VRR frequency range lower limit on GNU/Linux (Wayland/Wlroots)?

Post by Chief Blur Buster » 02 Apr 2025, 21:08

Tip: If also lowering the MaxHz, try to keep scanrate the same as the monitor's max specs. This creates a larger vertical total version of VRR as a method of lowering the MaxHz of a VRR range, without increasing the latency (caused by slower scanouts of a lower horizontal scanrate). It's harder to create custom timings for this, but this is useful if latency is important (even for lower frame rates and lower Hz).
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!

Post Reply