Module: Mesa
Branch: staging/23.3
Commit: 1be1b36053a3cb8f0fb657ecda49a1f118760faa
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1be1b36053a3cb8f0fb657ecda49a1f118760faa

Author: David Rosca <now...@gmail.com>
Date:   Thu Sep 28 17:23:59 2023 +0200

gallium/auxiliary/vl: Scale dst_rect x0/y0 when rendering chroma plane

This fixes incorrect chroma plane position when x0/y0 is not zero.

Fixes: 001358a97cc ("vl/compositor: add a new function for YUV deint")

Acked-by: Thong Thai <thong.t...@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26123>
(cherry picked from commit 35b0ccd8554e8b46833cb5b57be91e6201754a4f)

---

 .pick_status.json                        | 2 +-
 src/gallium/auxiliary/vl/vl_compositor.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 98a3e3e7725..626c6d3fd3d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -404,7 +404,7 @@
         "description": "gallium/auxiliary/vl: Scale dst_rect x0/y0 when 
rendering chroma plane",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "001358a97cce456d948bb57842ca099a73c10b06",
         "notes": null
diff --git a/src/gallium/auxiliary/vl/vl_compositor.c 
b/src/gallium/auxiliary/vl/vl_compositor.c
index 91a10a678c4..4d791f1afb6 100644
--- a/src/gallium/auxiliary/vl/vl_compositor.c
+++ b/src/gallium/auxiliary/vl/vl_compositor.c
@@ -691,6 +691,8 @@ vl_compositor_yuv_deint_full(struct vl_compositor_state *s,
    vl_compositor_render(s, c, dst_surfaces[0], NULL, false);
 
    if (dst_rect) {
+      dst_rect->x0 /= 2;
+      dst_rect->y0 /= 2;
       dst_rect->x1 /= 2;
       dst_rect->y1 /= 2;
    }
@@ -727,6 +729,8 @@ vl_compositor_convert_rgb_to_yuv(struct vl_compositor_state 
*s,
    vl_compositor_render(s, c, dst_surfaces[0], NULL, false);
 
    if (dst_rect) {
+      dst_rect->x0 /= 2;
+      dst_rect->y0 /= 2;
       dst_rect->x1 /= 2;
       dst_rect->y1 /= 2;
    }

Reply via email to