From: Wesley Chalmers <[email protected]>

[WHY]
Only the leftmost ODM pipe should be offset when scaling. A previous
code change was intended to implement this policy, but a section of code
was overlooked.

Signed-off-by: Wesley Chalmers <[email protected]>
Reviewed-by: Aric Cyr <[email protected]>
Acked-by: Qingqing Zhuo <[email protected]>
Cc: <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
index 4cea9344d8aa..e430148e47cf 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
@@ -785,14 +785,15 @@ static void calculate_recout(struct pipe_ctx *pipe_ctx)
        /*
         * Only the leftmost ODM pipe should be offset by a nonzero distance
         */
-       if (!pipe_ctx->prev_odm_pipe)
+       if (!pipe_ctx->prev_odm_pipe) {
                data->recout.x = stream->dst.x;
-       else
-               data->recout.x = 0;
-       if (stream->src.x < surf_clip.x)
-               data->recout.x += (surf_clip.x - stream->src.x) * 
stream->dst.width
+               if (stream->src.x < surf_clip.x)
+                       data->recout.x += (surf_clip.x - stream->src.x) * 
stream->dst.width
                                                / stream->src.width;
 
+       } else
+               data->recout.x = 0;
+
        data->recout.width = surf_clip.width * stream->dst.width / 
stream->src.width;
        if (data->recout.width + data->recout.x > stream->dst.x + 
stream->dst.width)
                data->recout.width = stream->dst.x + stream->dst.width - 
data->recout.x;
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to