From: James Zhu Date: Fri, 15 Feb 2019 20:33:43 +0000 (-0500) Subject: gallium/auxiliary/vl: Fix transparent issue on compute shader with rgba X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eac822eac1d0d682aa199cb039e9df4c53ec5e1e;p=mesa.git gallium/auxiliary/vl: Fix transparent issue on compute shader with rgba Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109646 Problem 1,4: they are caused by imcomplete blend comute shader implementation. So Reverts rgba back to frament shader. Fixes: 9364d66cb7f7 (Add video compositor compute shader render) Signed-off-by: James Zhu Reviewed-by: Leo Liu Tested-by: Bruno Milreu --- diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c index 8731ad95f58..a8f3620103b 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.c +++ b/src/gallium/auxiliary/vl/vl_compositor.c @@ -100,12 +100,12 @@ init_shaders(struct vl_compositor *c) debug_printf("Unable to create YCbCr-to-RGB weave fragment shader.\n"); return false; } + } - c->fs_rgba = create_frag_shader_rgba(c); - if (!c->fs_rgba) { - debug_printf("Unable to create RGB-to-RGB fragment shader.\n"); - return false; - } + c->fs_rgba = create_frag_shader_rgba(c); + if (!c->fs_rgba) { + debug_printf("Unable to create RGB-to-RGB fragment shader.\n"); + return false; } return true; @@ -132,8 +132,8 @@ static void cleanup_shaders(struct vl_compositor *c) } else { c->pipe->delete_fs_state(c->pipe, c->fs_video_buffer); c->pipe->delete_fs_state(c->pipe, c->fs_weave_rgb); - c->pipe->delete_fs_state(c->pipe, c->fs_rgba); } + c->pipe->delete_fs_state(c->pipe, c->fs_rgba); } static bool @@ -642,10 +642,7 @@ vl_compositor_set_rgba_layer(struct vl_compositor_state *s, assert(layer < VL_COMPOSITOR_MAX_LAYERS); s->used_layers |= 1 << layer; - if (c->pipe_compute_supported) - s->layers[layer].cs = c->cs_rgba; - else - s->layers[layer].fs = c->fs_rgba; + s->layers[layer].fs = c->fs_rgba; s->layers[layer].samplers[0] = c->sampler_linear; s->layers[layer].samplers[1] = NULL; s->layers[layer].samplers[2] = NULL;