diff options
author | Eric Anholt <[email protected]> | 2018-03-26 10:38:28 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2018-03-26 17:46:19 -0700 |
commit | 494da6c2dd8f0b570693f7611b58be11061224e0 (patch) | |
tree | 2d87fcf2b8a3668f36b10e26eb9063c0357e2c15 /src/gallium | |
parent | 1bf466270d416643e8fcacd6b790e53660303059 (diff) |
broadcom/vc5: Implement workaround for GFXH-1431.
This should fix some blending errors, but doesn't impact any testcases in
the CTS.
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/vc5/vc5_emit.c | 6 |
1 files changed, 5 insertions, 1 deletions
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] : |