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: 9364d66cb7
(Add video compositor compute shader render)
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Tested-by: Bruno Milreu <bmilreu@gmail.com>
This commit is contained in:
parent
20c370c6b1
commit
eac822eac1
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue