[virglrenderer-devel] [PATCH] vrend: fix dual src blending.

Elie Tournier tournier.elie at gmail.com
Fri May 18 16:01:16 UTC 2018


Hello Dave,

This patch doesn't apply on master.

BR,
Elie

On Fri, May 18, 2018 at 10:15:35AM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> For dual src blending to work we have to link the shader in a certain
> way, so we have to dirty the shaders on a new blend state, then
> we have to make sure the dual src bit is the same before avoiding
> a relink state, otherwise have to relink.
> 
> This fixes:
> piglit arb_blend_func_extended-fbo-extended-blend
> ---
>  src/vrend_renderer.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
> index 15e87ef..c1cd3be 100644
> --- a/src/vrend_renderer.c
> +++ b/src/vrend_renderer.c
> @@ -3052,6 +3052,8 @@ void vrend_draw_vbo(struct vrend_context *ctx,
>           same_prog = false;
>        if (ctx->sub->shaders[PIPE_SHADER_TESS_EVAL] && ctx->sub->shaders[PIPE_SHADER_TESS_EVAL]->current->id != ctx->sub->prog_ids[PIPE_SHADER_TESS_EVAL])
>           same_prog = false;
> +      if (ctx->sub->prog && ctx->sub->prog->dual_src_linked != dual_src)
> +	 same_prog = false;
>  
>        if (!same_prog) {
>           prog = lookup_shader_program(ctx,
> @@ -3530,6 +3532,7 @@ void vrend_object_bind_blend(struct vrend_context *ctx,
>        return;
>     }
>  
> +   ctx->sub->shader_dirty = true;
>     ctx->sub->blend_state = *state;
>  
>     vrend_hw_emit_blend(ctx, &ctx->sub->blend_state);
> -- 
> 2.14.3
> 
> _______________________________________________
> virglrenderer-devel mailing list
> virglrenderer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel


More information about the virglrenderer-devel mailing list