Commit 663bfef0 authored by Aidan Yang's avatar Aidan Yang Committed by Alex Deucher

drm/amd/display: Disable integerscaling for downscale and MPO

[Why]
Integer scaling is applied to MPO planes when downscaling,
MPO planes use variable taps and integer scaling sets taps=1

[How]
Disable integer scaling on MPO planes,
Disable integer scaling for downscaling planes
Signed-off-by: default avatarAidan Yang <Aidan.Yang@amd.com>
Reviewed-by: default avatarAric Cyr <Aric.Cyr@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c09d1d34
......@@ -940,11 +940,27 @@ static void calculate_inits_and_adj_vp(struct pipe_ctx *pipe_ctx)
}
static bool is_downscaled(const struct rect *src_rect, const struct rect *dst_rect)
{
if (src_rect->width > dst_rect->width || src_rect->height > dst_rect->height)
return true;
return false;
}
static bool is_mpo(int layer_index)
{
if (layer_index > 0)
return true;
return false;
}
static void calculate_integer_scaling(struct pipe_ctx *pipe_ctx)
{
unsigned int integer_multiple = 1;
if (pipe_ctx->plane_state->scaling_quality.integer_scaling) {
if (pipe_ctx->plane_state->scaling_quality.integer_scaling &&
!is_downscaled(&pipe_ctx->plane_state->src_rect, &pipe_ctx->plane_state->dst_rect) &&
!is_mpo(pipe_ctx->plane_state->layer_index)) {
// calculate maximum # of replication of src onto addressable
integer_multiple = min(
pipe_ctx->stream->timing.h_addressable / pipe_ctx->stream->src.width,
......
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