diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c index d312768d8a4..66abf7325b8 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.c +++ b/src/gallium/auxiliary/vl/vl_compositor.c @@ -572,6 +572,8 @@ vl_compositor_set_buffer_layer(struct vl_compositor_state *s, if (buffer->interlaced) { float half_a_line = 0.5f / s->layers[layer].zw.y; switch(deinterlace) { + case VL_COMPOSITOR_NONE: + case VL_COMPOSITOR_MOTION_ADAPTIVE: case VL_COMPOSITOR_WEAVE: if (c->pipe_cs_composit_supported) s->layers[layer].cs = c->cs_weave_rgb; @@ -778,6 +780,8 @@ vl_compositor_init(struct vl_compositor *c, struct pipe_context *pipe) c->pipe_gfx_supported = pipe->screen->get_param(pipe->screen, PIPE_CAP_GRAPHICS); c->pipe = pipe; + c->deinterlace = VL_COMPOSITOR_NONE; + if (!init_pipe_state(c)) { return false; } diff --git a/src/gallium/auxiliary/vl/vl_compositor.h b/src/gallium/auxiliary/vl/vl_compositor.h index cccee01623b..32ce82f7320 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.h +++ b/src/gallium/auxiliary/vl/vl_compositor.h @@ -50,9 +50,11 @@ struct pipe_context; /* deinterlace allgorithem */ enum vl_compositor_deinterlace { + VL_COMPOSITOR_NONE, VL_COMPOSITOR_WEAVE, VL_COMPOSITOR_BOB_TOP, - VL_COMPOSITOR_BOB_BOTTOM + VL_COMPOSITOR_BOB_BOTTOM, + VL_COMPOSITOR_MOTION_ADAPTIVE }; /* clockwise degree */ @@ -125,6 +127,8 @@ struct vl_compositor bool pipe_cs_composit_supported; bool pipe_gfx_supported; + enum vl_compositor_deinterlace deinterlace; + struct { struct { void *y;