From 3f31c54842d4d2e1e78dad6cab57e45cb616b344 Mon Sep 17 00:00:00 2001 From: Thong Thai Date: Fri, 28 Feb 2020 10:56:49 -0500 Subject: [PATCH] st/va/postproc: reallocate interlaced destination buffer When the source buffer is progressive source, re-allocate the destination buffer as progressive if it isn't already - otherwise transcoding will fail. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1418 Signed-off-by: Thong Thai Reviewed-by: Leo Liu Tested-by: Marge Bot Part-of: --- src/gallium/state_trackers/va/postproc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/gallium/state_trackers/va/postproc.c b/src/gallium/state_trackers/va/postproc.c index 83293c8343f..18458832844 100644 --- a/src/gallium/state_trackers/va/postproc.c +++ b/src/gallium/state_trackers/va/postproc.c @@ -130,9 +130,6 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context, !src->interlaced) grab = true; - if (src->interlaced != dst->interlaced && dst->interlaced && !grab) - return VA_STATUS_ERROR_INVALID_SURFACE; - if ((src->width != dst->width || src->height != dst->height) && (src->interlaced && dst->interlaced)) scale = true; @@ -141,7 +138,7 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context, if (!src_surfaces || !src_surfaces[0]) return VA_STATUS_ERROR_INVALID_SURFACE; - if (scale || (grab && dst->interlaced)) { + if (scale || (src->interlaced != dst->interlaced && dst->interlaced)) { vlVaSurface *surf; surf = handle_table_get(drv->htab, context->target_id); -- 2.30.2