Commit 6bf20b9b authored by Aric Cyr's avatar Aric Cyr Committed by Alex Deucher

drm/amd/display: Fix SDR visual confirm

Apply SDR visual confirm to RGB10 and FP16 formats as well when needed.
Tested-by: default avatarMark Broadworth <mark.broadworth@amd.com>
Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAric Cyr <Aric.Cyr@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c3575dd2
...@@ -366,6 +366,7 @@ void get_hdr_visual_confirm_color( ...@@ -366,6 +366,7 @@ void get_hdr_visual_confirm_color(
struct tg_color *color) struct tg_color *color)
{ {
uint32_t color_value = MAX_TG_COLOR_VALUE; uint32_t color_value = MAX_TG_COLOR_VALUE;
bool is_sdr = false;
/* Determine the overscan color based on the top-most (desktop) plane's context */ /* Determine the overscan color based on the top-most (desktop) plane's context */
struct pipe_ctx *top_pipe_ctx = pipe_ctx; struct pipe_ctx *top_pipe_ctx = pipe_ctx;
...@@ -382,7 +383,8 @@ void get_hdr_visual_confirm_color( ...@@ -382,7 +383,8 @@ void get_hdr_visual_confirm_color(
/* FreeSync 2 ARGB2101010 - set border color to pink */ /* FreeSync 2 ARGB2101010 - set border color to pink */
color->color_r_cr = color_value; color->color_r_cr = color_value;
color->color_b_cb = color_value; color->color_b_cb = color_value;
} } else
is_sdr = true;
break; break;
case PIXEL_FORMAT_FP16: case PIXEL_FORMAT_FP16:
if (top_pipe_ctx->stream->out_transfer_func->tf == TRANSFER_FUNCTION_PQ) { if (top_pipe_ctx->stream->out_transfer_func->tf == TRANSFER_FUNCTION_PQ) {
...@@ -391,14 +393,19 @@ void get_hdr_visual_confirm_color( ...@@ -391,14 +393,19 @@ void get_hdr_visual_confirm_color(
} else if (top_pipe_ctx->stream->out_transfer_func->tf == TRANSFER_FUNCTION_GAMMA22) { } else if (top_pipe_ctx->stream->out_transfer_func->tf == TRANSFER_FUNCTION_GAMMA22) {
/* FreeSync 2 HDR - set border color to green */ /* FreeSync 2 HDR - set border color to green */
color->color_g_y = color_value; color->color_g_y = color_value;
} } else
is_sdr = true;
break; break;
default: default:
is_sdr = true;
break;
}
if (is_sdr) {
/* SDR - set border color to Gray */ /* SDR - set border color to Gray */
color->color_r_cr = color_value/2; color->color_r_cr = color_value/2;
color->color_b_cb = color_value/2; color->color_b_cb = color_value/2;
color->color_g_y = color_value/2; color->color_g_y = color_value/2;
break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment