From 494da6c2dd8f0b570693f7611b58be11061224e0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 26 Mar 2018 10:38:28 -0700 Subject: [PATCH] broadcom/vc5: Implement workaround for GFXH-1431. This should fix some blending errors, but doesn't impact any testcases in the CTS. --- src/gallium/drivers/vc5/vc5_emit.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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] : -- 2.30.2