drm/amd/display: adjust visual confirm dpp height offset to be 1/240 of v addressable

[why]
For timing with large v addressable visual confirm is just too small. It is difficult
to tell visually which DPP we are using. On the other hand with timing with small
v addressable visual confirm is too large and covers the UI area.

[how]
We calculate visual confirm dpp height offset based on v addressable so it stays
relatively the same height i.e. 1/240 verticle portion of the screen.

Reviewed-by: Jun Lei <jun.lei@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Wenjing Liu
2023-07-25 19:20:00 -04:00
committed by Alex Deucher
parent 460ea89805
commit c5a4f9010d

View File

@@ -72,7 +72,12 @@
#define VISUAL_CONFIRM_BASE_DEFAULT 3
#define VISUAL_CONFIRM_BASE_MIN 1
#define VISUAL_CONFIRM_BASE_MAX 10
#define VISUAL_CONFIRM_DPP_OFFSET 3
/* we choose 240 because it is a common denominator of common v addressable
* such as 2160, 1440, 1200, 960. So we take 1/240 portion of v addressable as
* the visual confirm dpp offset height. So visual confirm height can stay
* relatively the same independent from timing used.
*/
#define VISUAL_CONFIRM_DPP_OFFSET_DENO 240
#define DC_LOGGER_INIT(logger)
@@ -1002,7 +1007,8 @@ static void adjust_recout_for_visual_confirm(struct rect *recout,
if (dc->debug.visual_confirm == VISUAL_CONFIRM_DISABLE)
return;
dpp_offset = pipe_ctx->plane_res.dpp->inst * VISUAL_CONFIRM_DPP_OFFSET;
dpp_offset = pipe_ctx->stream->timing.v_addressable / VISUAL_CONFIRM_DPP_OFFSET_DENO;
dpp_offset *= pipe_ctx->plane_res.dpp->inst;
if ((dc->debug.visual_confirm_rect_height >= VISUAL_CONFIRM_BASE_MIN) &&
dc->debug.visual_confirm_rect_height <= VISUAL_CONFIRM_BASE_MAX)