From: Eric Anholt Date: Mon, 26 Mar 2018 17:38:28 +0000 (-0700) Subject: broadcom/vc5: Implement workaround for GFXH-1431. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=494da6c2dd8f0b570693f7611b58be11061224e0;p=mesa.git broadcom/vc5: Implement workaround for GFXH-1431. This should fix some blending errors, but doesn't impact any testcases in the CTS. --- diff --git a/src/gallium/drivers/vc5/vc5_emit.c b/src/gallium/drivers/vc5/vc5_emit.c index 71f508c9ee8..deb46228dad 100644 --- a/src/gallium/drivers/vc5/vc5_emit.c +++ b/src/gallium/drivers/vc5/vc5_emit.c @@ -490,7 +490,11 @@ v3dX(emit_state)(struct pipe_context *pctx) } } - if (vc5->dirty & VC5_DIRTY_BLEND_COLOR) { + /* GFXH-1431: On V3D 3.x, writing BLEND_CONFIG resets the constant + * color. + */ + if (vc5->dirty & VC5_DIRTY_BLEND_COLOR || + (V3D_VERSION < 41 && (vc5->dirty & VC5_DIRTY_BLEND))) { cl_emit(&job->bcl, BLEND_CONSTANT_COLOUR, colour) { colour.red_f16 = (vc5->swap_color_rb ? vc5->blend_color.hf[2] :