My Samsung LC24RG50 supports FreeSync, but it wouldn’t play nice with my Intel ARC GPU, so I ended up force enabling it in the EDID.
Modifying the EDID
After a bunch of troubleshooting, I did end up making my monitor present a VRR EDID, which I dumped here, but here’s the things you should modify if you can’t:
- Acquire your monitor’s EDID, I used
get-edid > monitor.bin
- Using wxEDID, view the EDID’s MRL section
- Set
extd_timg
to0x01
, I believe this is required for VRR - Make sure
min_Vfreq
andmax_Vfreq
are correctly set to your monitor’s range (eg. 48-144 Hz) - I’m not sure but I think
min_Hfreq
should be the same asmax_Hfreq
, if it’s not set it to the same asmax_Hfreq
(eg. Both 168 kHz)
Applying the EDID (on Wayland)
- Copy the EDID to
/usr/lib/firmware/edid/
- Add
drm.edid_firmware=DP-1:edid/monitor.bin
to your kernel command line, replacingDP-1
with your monitor’s connector name, andmonitor.bin
with the EDID file name. - You may need to create an initramfs hook script, I used this one.
- Reboot
Multiple EDIDs
You can specify multiple EDIDs in the kernel command line using a comma, eg. drm.edid_firmware=DP-1:edid/monitor1.bin,DP-2:edid/monitor2.bin
Thanks for reading!
Steve.