I want to change (lower) my screen resolution and use a high refresh rate but I can’t.
My monitor supports 144 Hz and at the native resolution this mode is available. When I want any other (lower) resolution I don’t get high refresh rates to choose from.
My current understanding of the situation is the following:
In theory one could “add” reported modes by doing something with EDID and adding kernel boot options. But since nvidia is involved, this does not work. I got this from here:
Available modes are the ones reported by the monitor + modes with common resolutions that are generated.
Support for these additional common resolutions was added in KDE 5.25.3 as mentioned here: discuss . kde . org : 8997
This bug tracked it: bugs . kde . org : 448398
And this commit by zamundaaa fixed it: KWin : 9ed87a4e
From the commit I got that the refresh rate for generated modes is an estimate based on bandwidth. The result of this guess is wrong (maybe a bug?).
Overall this seems straightforward but impossible at the same time.
How do I add custom modes with resolution AND refresh rate? Is this even possible?
Maybe: Can I influence the generation of modes to get the desired result?
I’m on a up-to-date KDE Neon on Wayland using nvidia.
PS: Sorry for the images but apparently links are not permitted.
PSS: New users can only add one image…
Replace the Xs and the PORTNAME-NUM with the relevant value for your system - you can find all the possible paths by running:
ls /sys/devices/*/*/drm/*/*/edid
Note that this will list all display connections that the Kernel sees, regardless of whether there’s a screen connected to them - only when you read them the kernel will try to fetch the EDID. If you try to read from a disconnected port edid-decode will complain and say “EDID extract of 'PATH' failed: unknown format.” - which is fine, it just means nothing is connected.
Can you share the output of edid-decode for your screen?
It’s probably not relevant but it seems that I have a thrid pci address level. I added another /* and running the resulting command gave me the desired list of edid files. ls /sys/devices/*/*/*/drm/*/*/edid
It looks like your display supports 144Hz only in the native 3840x1080 resolution (where it also supports 100Hz) and 60Hz or 75Hz for any other resolution.
So I don’t think you can set a non-native resolution with a high refresh rate - your hardware claim that it cannot do that.
Remove mode validation checks by adding the following line to the Section "OutputClass" in /usr/share/X11/xorg.conf.d/10-nvidia.conf. Option "ModeValidation" "AllowNon60hzmodesDFPModes, NoEDIDDFPMaxSizeCheck, NoVertRefreshCheck, NoHorizSyncCheck, NoDFPNativeResolutionCheck,
Supposedly, if you have an X11 modeline - you can convert it to an EDID firmware override file and then load it into the kernel - as described in this article: