gallium/auxiliary/vl: Fixed blank issue with compute shader
authorJames Zhu <James.Zhu@amd.com>
Fri, 29 Mar 2019 19:57:51 +0000 (15:57 -0400)
committerLeo Liu <leo.liu@amd.com>
Fri, 5 Apr 2019 13:50:52 +0000 (09:50 -0400)
Multiple init buffer within one open instance will cause blank issue.
Updating viewport per frame will fix this issue.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Tested-by: Bruno Milreu <bmilreu@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/vl/vl_compositor_cs.c

index 6336b23..c3afe61 100644 (file)
@@ -362,7 +362,6 @@ draw_layers(struct vl_compositor       *c,
             struct u_rect              *dirty)
 {
    unsigned i;
-   static struct cs_viewport old_drawn;
 
    assert(c);
 
@@ -381,11 +380,7 @@ draw_layers(struct vl_compositor       *c,
          drawn.translate_y = (int)layer->viewport.translate[1];
          drawn.sampler0_w = (float)layer->sampler_views[0]->texture->width0;
          drawn.sampler0_h = (float)layer->sampler_views[0]->texture->height0;
-
-         if (memcmp(&drawn, &old_drawn, sizeof(struct cs_viewport))) {
-            set_viewport(s, &drawn);
-            old_drawn = drawn;
-         }
+         set_viewport(s, &drawn);
 
          c->pipe->bind_sampler_states(c->pipe, PIPE_SHADER_COMPUTE, 0,
                         num_sampler_views, layer->samplers);