summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-03-26 10:38:28 -0700
committerEric Anholt <[email protected]>2018-03-26 17:46:19 -0700
commit494da6c2dd8f0b570693f7611b58be11061224e0 (patch)
tree2d87fcf2b8a3668f36b10e26eb9063c0357e2c15 /src
parent1bf466270d416643e8fcacd6b790e53660303059 (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')
-rw-r--r--src/gallium/drivers/vc5/vc5_emit.c6
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] :