drm/amd/display: fix LFC tearing at top of screen
Tearing occurred because new VTOTAL MIN/MAX was being programmed too early. The flip can happen within the VUPDATE high region, and the new min/max would take effect immediately. But this means that frame is not variable anymore, and tearing would occur when the flip actually happens. The fixed insert duration should be programmed on the first VUPDATE interrupt instead. Signed-off-by: Anthony Koo <Anthony.Koo@amd.com> Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
be922ff750
commit
9410a3776b
@ -371,12 +371,6 @@ static void apply_below_the_range(struct core_freesync *core_freesync,
|
||||
inserted_frame_duration_in_us;
|
||||
in_out_vrr->btr.frames_to_insert = frames_to_insert;
|
||||
in_out_vrr->btr.frame_counter = frames_to_insert;
|
||||
|
||||
in_out_vrr->adjust.v_total_min =
|
||||
calc_v_total_from_duration(stream, in_out_vrr,
|
||||
in_out_vrr->btr.inserted_duration_in_us);
|
||||
in_out_vrr->adjust.v_total_max =
|
||||
in_out_vrr->adjust.v_total_min;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user