From 33dc69b9fa0982f3b6f0c966c59c4b904dff5507 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 17 Aug 2023 14:26:56 +0200 Subject: [PATCH] gallium/auxiliary/vl: Don't set csc matrix in video_buffer/rgb_to_yuv_layer It's now handled in va frontend instead. Reviewed-by: Leo Liu Part-of: --- src/gallium/auxiliary/vl/vl_compositor.c | 22 ++++------------------ src/gallium/auxiliary/vl/vl_compositor.h | 3 +-- src/gallium/frontends/va/postproc.c | 8 +++----- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c index cf2fdc08559..cebd3afd7fc 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.c +++ b/src/gallium/auxiliary/vl/vl_compositor.c @@ -384,11 +384,8 @@ set_yuv_layer(struct vl_compositor_state *s, struct vl_compositor *c, static void set_rgb_to_yuv_layer(struct vl_compositor_state *s, struct vl_compositor *c, unsigned layer, struct pipe_sampler_view *v, - struct u_rect *src_rect, struct u_rect *dst_rect, bool y, - bool full_range) + struct u_rect *src_rect, struct u_rect *dst_rect, bool y) { - vl_csc_matrix csc_matrix; - assert(s && c && v); assert(layer < VL_COMPOSITOR_MAX_LAYERS); @@ -397,9 +394,6 @@ set_rgb_to_yuv_layer(struct vl_compositor_state *s, struct vl_compositor *c, s->layers[layer].fs = y? c->fs_rgb_yuv.y : c->fs_rgb_yuv.uv; - vl_csc_get_matrix(VL_CSC_COLOR_STANDARD_BT_709_REV, NULL, full_range, &csc_matrix); - vl_compositor_set_csc_matrix(s, (const vl_csc_matrix *)&csc_matrix, 1.0f, 0.0f); - s->layers[layer].samplers[0] = c->sampler_linear; s->layers[layer].samplers[1] = NULL; s->layers[layer].samplers[2] = NULL; @@ -561,7 +555,6 @@ vl_compositor_set_buffer_layer(struct vl_compositor_state *s, { struct pipe_sampler_view **sampler_views; unsigned i; - vl_csc_matrix csc_matrix; assert(s && c && buffer); @@ -618,12 +611,6 @@ vl_compositor_set_buffer_layer(struct vl_compositor_state *s, else if (c->pipe_gfx_supported) s->layers[layer].fs = c->fs_video_buffer; } - - vl_csc_get_matrix(util_format_is_yuv(buffer->buffer_format) ? - VL_CSC_COLOR_STANDARD_BT_601 : - VL_CSC_COLOR_STANDARD_IDENTITY, - NULL, true, &csc_matrix); - vl_compositor_set_csc_matrix(s, &csc_matrix, 1.0f, 0.0f); } void @@ -735,8 +722,7 @@ vl_compositor_convert_rgb_to_yuv(struct vl_compositor_state *s, struct pipe_resource *src_res, struct pipe_video_buffer *dst, struct u_rect *src_rect, - struct u_rect *dst_rect, - bool full_range) + struct u_rect *dst_rect) { struct pipe_sampler_view *sv, sv_templ; struct pipe_surface **dst_surfaces; @@ -749,7 +735,7 @@ vl_compositor_convert_rgb_to_yuv(struct vl_compositor_state *s, vl_compositor_clear_layers(s); - set_rgb_to_yuv_layer(s, c, 0, sv, src_rect, NULL, true, full_range); + set_rgb_to_yuv_layer(s, c, 0, sv, src_rect, NULL, true); vl_compositor_set_layer_dst_area(s, 0, dst_rect); vl_compositor_render(s, c, dst_surfaces[0], NULL, false); @@ -758,7 +744,7 @@ vl_compositor_convert_rgb_to_yuv(struct vl_compositor_state *s, dst_rect->y1 /= 2; } - set_rgb_to_yuv_layer(s, c, 0, sv, src_rect, NULL, false, full_range); + set_rgb_to_yuv_layer(s, c, 0, sv, src_rect, NULL, false); vl_compositor_set_layer_dst_area(s, 0, dst_rect); vl_compositor_render(s, c, dst_surfaces[1], NULL, false); pipe_sampler_view_reference(&sv, NULL); diff --git a/src/gallium/auxiliary/vl/vl_compositor.h b/src/gallium/auxiliary/vl/vl_compositor.h index b3873ae8d5c..5fd2410bfa1 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.h +++ b/src/gallium/auxiliary/vl/vl_compositor.h @@ -304,8 +304,7 @@ vl_compositor_convert_rgb_to_yuv(struct vl_compositor_state *state, struct pipe_resource *src_res, struct pipe_video_buffer *dst, struct u_rect *src_rect, - struct u_rect *dst_rect, - bool full_range); + struct u_rect *dst_rect); /*@}*/ diff --git a/src/gallium/frontends/va/postproc.c b/src/gallium/frontends/va/postproc.c index dce3d3618c0..d5cdfb77c45 100644 --- a/src/gallium/frontends/va/postproc.c +++ b/src/gallium/frontends/va/postproc.c @@ -231,8 +231,7 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context, const VARectangle *dst_region, struct pipe_video_buffer *src, struct pipe_video_buffer *dst, - enum vl_compositor_deinterlace deinterlace, - bool full_range) + enum vl_compositor_deinterlace deinterlace) { struct pipe_surface **src_surfaces; struct pipe_surface **dst_surfaces; @@ -289,7 +288,7 @@ static VAStatus vlVaPostProcBlit(vlVaDriver *drv, vlVaContext *context, if (grab) { vl_compositor_convert_rgb_to_yuv(&drv->cstate, &drv->compositor, 0, ((struct vl_video_buffer *)src)->resources[0], - dst, &src_rect, &dst_rect, full_range); + dst, &src_rect, &dst_rect); return VA_STATUS_SUCCESS; } @@ -589,6 +588,5 @@ vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver *drv, vlVaContext *contex src, context->target, deinterlace); else return vlVaPostProcBlit(drv, context, src_region, dst_region, - src, context->target, deinterlace, - dst_surface->full_range); + src, context->target, deinterlace); }