drm/amd/display: fix default dithering
bug: default is mapped to no dithering. default to spatial dithering based on color depth Signed-off-by: Tony Cheng <tony.cheng@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@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
61a44fc626
commit
603767f903
@ -341,23 +341,9 @@ void set_dither_option(struct dc_stream_state *stream,
|
||||
return;
|
||||
if (option > DITHER_OPTION_MAX)
|
||||
return;
|
||||
if (option == DITHER_OPTION_DEFAULT) {
|
||||
switch (stream->timing.display_color_depth) {
|
||||
case COLOR_DEPTH_666:
|
||||
stream->dither_option = DITHER_OPTION_SPATIAL6;
|
||||
break;
|
||||
case COLOR_DEPTH_888:
|
||||
stream->dither_option = DITHER_OPTION_SPATIAL8;
|
||||
break;
|
||||
case COLOR_DEPTH_101010:
|
||||
stream->dither_option = DITHER_OPTION_SPATIAL10;
|
||||
break;
|
||||
default:
|
||||
option = DITHER_OPTION_DISABLE;
|
||||
}
|
||||
} else {
|
||||
stream->dither_option = option;
|
||||
}
|
||||
|
||||
stream->dither_option = option;
|
||||
|
||||
resource_build_bit_depth_reduction_params(stream,
|
||||
¶ms);
|
||||
stream->bit_depth_params = params;
|
||||
|
@ -2607,6 +2607,22 @@ void resource_build_bit_depth_reduction_params(struct dc_stream_state *stream,
|
||||
|
||||
memset(fmt_bit_depth, 0, sizeof(*fmt_bit_depth));
|
||||
|
||||
if (option == DITHER_OPTION_DEFAULT) {
|
||||
switch (stream->timing.display_color_depth) {
|
||||
case COLOR_DEPTH_666:
|
||||
option = DITHER_OPTION_SPATIAL6;
|
||||
break;
|
||||
case COLOR_DEPTH_888:
|
||||
option = DITHER_OPTION_SPATIAL8;
|
||||
break;
|
||||
case COLOR_DEPTH_101010:
|
||||
option = DITHER_OPTION_SPATIAL10;
|
||||
break;
|
||||
default:
|
||||
option = DITHER_OPTION_DISABLE;
|
||||
}
|
||||
}
|
||||
|
||||
if (option == DITHER_OPTION_DISABLE)
|
||||
return;
|
||||
|
||||
|
@ -1104,15 +1104,11 @@ static enum dc_status apply_single_controller_ctx_to_hw(
|
||||
stream->timing.timing_3d_format != TIMING_3D_FORMAT_NONE);
|
||||
|
||||
|
||||
/*vbios crtc_source_selection and encoder_setup will override fmt_C*/
|
||||
if (pipe_ctx->stream->signal != SIGNAL_TYPE_EDP &&
|
||||
pipe_ctx->stream->signal != SIGNAL_TYPE_LVDS) {
|
||||
/*for embedded panel, don't override VBIOS's setting*/
|
||||
pipe_ctx->stream_res.opp->funcs->opp_program_fmt(
|
||||
pipe_ctx->stream_res.opp,
|
||||
&stream->bit_depth_params,
|
||||
&stream->clamping);
|
||||
}
|
||||
pipe_ctx->stream_res.opp->funcs->opp_program_fmt(
|
||||
pipe_ctx->stream_res.opp,
|
||||
&stream->bit_depth_params,
|
||||
&stream->clamping);
|
||||
|
||||
if (dc_is_dp_signal(pipe_ctx->stream->signal))
|
||||
pipe_ctx->stream_res.stream_enc->funcs->dp_set_stream_attribute(
|
||||
pipe_ctx->stream_res.stream_enc,
|
||||
|
Loading…
x
Reference in New Issue
Block a user