frontends/va/postproc: Use the actual image height when blitting
authorThong Thai <thong.thai@amd.com>
Mon, 21 Sep 2020 17:53:16 +0000 (13:53 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 25 Nov 2020 20:08:15 +0000 (20:08 +0000)
Updates the height of the blitting parameter to use the actual image
height instead of the buffer height, otherwise when scaling, garbage
lines are shown in the output.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6803>

src/gallium/frontends/va/postproc.c

index 1845883..f84a5ae 100644 (file)
@@ -204,6 +204,7 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context,
 
       memset(&blit, 0, sizeof(blit));
       blit.src.resource = from->texture;
+      blit.src.resource->height0 = src_region->height;
       blit.src.format = from->format;
       blit.src.level = 0;
       blit.src.box.z = from->u.tex.first_layer;
@@ -211,6 +212,7 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context,
       vlVaGetBox(src, i, &blit.src.box, src_region);
 
       blit.dst.resource = dst_surfaces[i]->texture;
+      blit.dst.resource->height0 = dst_region->height;
       blit.dst.format = dst_surfaces[i]->format;
       blit.dst.level = 0;
       blit.dst.box.z = dst_surfaces[i]->u.tex.first_layer;