[amdgpu] VRR/Freesync below the range (LFC) flickering (5700 XT)
@aqxa1
Submitted by aqxa1 Assigned to Default DRI bug account
Link to original bug (#111506)
Description
I'm getting heavy flickering when dropping below the minimum refresh rate (default of 40-92, but I also tested 35-92) with Freesync enabled.
It seems to be LFC related as the higher the minimum, the earlier the flickering kicks in (so it's not a case of the monitor not being able to handle it at the low end).
I can workaround the problem by changing block of code in freesync.c:
if (in_out_vrr->max_refresh_in_uhz <
(2 * in_out_vrr->min_refresh_in_uhz))
in_out_vrr->btr.btr_enabled = false;
with:
if (in_out_vrr->max_refresh_in_uhz <
(3 * in_out_vrr->min_refresh_in_uhz))
in_out_vrr->btr.btr_enabled = false;
effectively forcing LFC to only kick in at ~30fps or lower.
It's possibly a regression as I don't remember the issue occurring with Vega or Polaris and 5.2 kernel. It's also possible that it's the monitor itself at fault, and maybe LFC wasn't kicking in properly in older kernels/hardware, effectively hiding the problem. I will try to get around to testing with Vega and an older kernel in the future.
System:
MSI 5700 XT
amd-staging-drm-next
Mesa git