Mesa (staging/21.2): gallium/auxiliary/vl: Add additional deinterlace enum and tracking

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 9 21:47:00 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: 94acf7bfaf2490fcd74fcbae270d408aaad1afd1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=94acf7bfaf2490fcd74fcbae270d408aaad1afd1

Author: Thong Thai <thong.thai at amd.com>
Date:   Fri Aug  6 14:32:40 2021 -0400

gallium/auxiliary/vl: Add additional deinterlace enum and tracking

Add additional deinterlace enums and a deinterlace field to the
vl_compositor struct, so we can keep track of which deinterlacing
algorithm is currently being used, if any.

Signed-off-by: Thong Thai <thong.thai at amd.com>
Reviewed-by: Leo Liu <leo.liu at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12251>
(cherry picked from commit 675508dd81da8d77f179c6cc7831caaa2cbde094)

---

 .pick_status.json                        | 2 +-
 src/gallium/auxiliary/vl/vl_compositor.c | 4 ++++
 src/gallium/auxiliary/vl/vl_compositor.h | 6 +++++-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index bf40278577a..20c0fe7170c 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -553,7 +553,7 @@
         "description": "gallium/auxiliary/vl: Add additional deinterlace enum and tracking",
         "nominated": false,
         "nomination_type": null,
-        "resolution": 4,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c
index a6ace353273..554d6aa5865 100644
--- a/src/gallium/auxiliary/vl/vl_compositor.c
+++ b/src/gallium/auxiliary/vl/vl_compositor.c
@@ -571,6 +571,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;
@@ -777,6 +779,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;



More information about the mesa-commit mailing list