summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc5
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2017-11-01 13:56:25 -0700
committerEric Anholt <[email protected]>2017-11-07 09:19:48 -0800
commitf90ee6eb2b9a7b454ae22c4f63e027a56b5969f9 (patch)
tree73dff0e1241893a98d4dd6775ea9d7dd020cfef7 /src/gallium/drivers/vc5
parentdd429cb2db6f5da848ed99144cbd4701ed155204 (diff)
broadcom/vc5: Don't emit updated blend factors/funcs while disabled.
The dirty bit will be flagged again when re-enbaled. Keeps us from emitting blend state in CLs that never do blending.
Diffstat (limited to 'src/gallium/drivers/vc5')
-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 9df4c1ee3eb..51709176a2c 100644
--- a/src/gallium/drivers/vc5/vc5_emit.c
+++ b/src/gallium/drivers/vc5/vc5_emit.c
@@ -325,7 +325,7 @@ vc5_emit_state(struct pipe_context *pctx)
}
}
- if (vc5->dirty & VC5_DIRTY_BLEND) {
+ if (vc5->dirty & VC5_DIRTY_BLEND && vc5->blend->rt[0].blend_enable) {
struct pipe_blend_state *blend = vc5->blend;
cl_emit(&job->bcl, BLEND_CONFIG, config) {
@@ -347,6 +347,10 @@ vc5_emit_state(struct pipe_context *pctx)
vc5_factor(rtblend->alpha_src_factor,
vc5->blend_dst_alpha_one);
}
+ }
+
+ if (vc5->dirty & VC5_DIRTY_BLEND) {
+ struct pipe_blend_state *blend = vc5->blend;
cl_emit(&job->bcl, COLOUR_WRITE_MASKS, mask) {
if (blend->independent_blend_enable) {