[drm/amd/display] Fake refresh rates are indistinguishable and can't be disabled
On VRR displays, extra fake refresh rates are added by a feature called FreeSync Video Modes. These refresh rates aren't true refresh rates. They set the display to its highest refresh rate and then use "VRR" (increased blanking) to lock the "variable" refresh rate at e.g. 48, 50, 60, 72, 96, or 120 Hz. Because the display already thinks it's using VRR (the refresh rate just happens to be "stable"), actual VRR stops working. But the real problems are that:
- These fake refresh rates are indistinguishable from real refresh rates from the perspective of KDE/Gnome. E.g. the output of
drm_info
shows no difference between fake and real refresh rates. So a normal user doesn't know if he selects a real refresh rate or a fake one from the display settings menu in KDE/Gnome. Because KDE removes duplicate refresh rates, it's sometimes not even possible to select the real refresh rate. - Adding
amdgpu.freesync_video=0
to the kernel boot line doesn't disable these fake refresh rates.
I'm now on Linux 6.6. And freesync_video
used to be listed under /sys/module/amdgpu/parameters/
or systool -vm amdgpu
, but now it's gone from both. (Weirdly enough, when it used to be listed, the fake refresh rates were enabled even though freesync_video
was set to 0
by default for me...)
As a side note, some of the fake refresh rates (e.g. 48 and 50 Hz) cause a completely garbled image on my monitor. The real 48 and 50 Hz work fine.