drm/amd/display: program scaler not called.
Scaler code in case of UPDATE_TYPE_MED was not called since new pipe context and current context are the same. Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@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
e73b59b7e0
commit
c1473558e6
2 changed files with 23 additions and 6 deletions
|
@ -1011,12 +1011,23 @@ bool dc_commit_surfaces_to_stream(
|
||||||
struct dc_plane_info plane_info[MAX_SURFACES];
|
struct dc_plane_info plane_info[MAX_SURFACES];
|
||||||
struct dc_scaling_info scaling_info[MAX_SURFACES];
|
struct dc_scaling_info scaling_info[MAX_SURFACES];
|
||||||
int i;
|
int i;
|
||||||
|
bool ret;
|
||||||
|
struct dc_stream_update *stream_update =
|
||||||
|
dm_alloc(sizeof(struct dc_stream_update));
|
||||||
|
|
||||||
|
if (!stream_update) {
|
||||||
|
BREAK_TO_DEBUGGER();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
memset(updates, 0, sizeof(updates));
|
memset(updates, 0, sizeof(updates));
|
||||||
memset(flip_addr, 0, sizeof(flip_addr));
|
memset(flip_addr, 0, sizeof(flip_addr));
|
||||||
memset(plane_info, 0, sizeof(plane_info));
|
memset(plane_info, 0, sizeof(plane_info));
|
||||||
memset(scaling_info, 0, sizeof(scaling_info));
|
memset(scaling_info, 0, sizeof(scaling_info));
|
||||||
|
|
||||||
|
stream_update->src = dc_stream->src;
|
||||||
|
stream_update->dst = dc_stream->dst;
|
||||||
|
|
||||||
for (i = 0; i < new_surface_count; i++) {
|
for (i = 0; i < new_surface_count; i++) {
|
||||||
updates[i].surface = new_surfaces[i];
|
updates[i].surface = new_surfaces[i];
|
||||||
updates[i].gamma =
|
updates[i].gamma =
|
||||||
|
@ -1041,9 +1052,17 @@ bool dc_commit_surfaces_to_stream(
|
||||||
updates[i].plane_info = &plane_info[i];
|
updates[i].plane_info = &plane_info[i];
|
||||||
updates[i].scaling_info = &scaling_info[i];
|
updates[i].scaling_info = &scaling_info[i];
|
||||||
}
|
}
|
||||||
dc_update_surfaces_for_stream(dc, updates, new_surface_count, dc_stream);
|
|
||||||
|
|
||||||
return dc_post_update_surfaces_to_stream(dc);
|
dc_update_surfaces_and_stream(
|
||||||
|
dc,
|
||||||
|
updates,
|
||||||
|
new_surface_count,
|
||||||
|
dc_stream, stream_update);
|
||||||
|
|
||||||
|
ret = dc_post_update_surfaces_to_stream(dc);
|
||||||
|
|
||||||
|
dm_free(stream_update);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool is_surface_in_context(
|
static bool is_surface_in_context(
|
||||||
|
|
|
@ -2408,10 +2408,8 @@ static void dce110_program_front_end_for_pipe(
|
||||||
pipe_ctx->xfm->funcs->transform_set_gamut_remap(pipe_ctx->xfm, &adjust);
|
pipe_ctx->xfm->funcs->transform_set_gamut_remap(pipe_ctx->xfm, &adjust);
|
||||||
|
|
||||||
pipe_ctx->scl_data.lb_params.alpha_en = pipe_ctx->bottom_pipe != 0;
|
pipe_ctx->scl_data.lb_params.alpha_en = pipe_ctx->bottom_pipe != 0;
|
||||||
if (old_pipe && memcmp(&old_pipe->scl_data,
|
|
||||||
&pipe_ctx->scl_data,
|
program_scaler(dc, pipe_ctx);
|
||||||
sizeof(struct scaler_data)) != 0)
|
|
||||||
program_scaler(dc, pipe_ctx);
|
|
||||||
|
|
||||||
mi->funcs->mem_input_program_surface_config(
|
mi->funcs->mem_input_program_surface_config(
|
||||||
mi,
|
mi,
|
||||||
|
|
Loading…
Add table
Reference in a new issue