diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 5194011d30e..037644d7963 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -376,6 +376,7 @@ struct pipe_blend_state unsigned alpha_to_one:1; unsigned max_rt:3; /* index of max rt, Ie. # of cbufs minus 1 */ unsigned advanced_blend_func:4; + unsigned blend_coherent:1; struct pipe_rt_blend_state rt[PIPE_MAX_COLOR_BUFS]; }; diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c index edd6a3c7c5e..a78a1c2ec06 100644 --- a/src/mesa/state_tracker/st_atom_blend.c +++ b/src/mesa/state_tracker/st_atom_blend.c @@ -263,6 +263,10 @@ st_update_blend( struct st_context *st ) blend->rt[i].colormask = colormask; } + if (ctx->Color._AdvancedBlendMode != BLEND_NONE) { + blend->blend_coherent = ctx->Color.BlendCoherent; + } + if (ctx->Color.ColorLogicOpEnabled) { /* logicop enabled */ blend->logicop_enable = 1;