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 <leo.liu@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24788>
This commit is contained in:
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user