diff options
-rw-r--r-- | src/gallium/drivers/vc4/vc4_program.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 7a2a9756a59..c6d9fb31603 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -1308,9 +1308,17 @@ vc4_blend_channel(struct vc4_compile *c, case PIPE_BLENDFACTOR_DST_COLOR: return qir_FMUL(c, val, dst[channel]); case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE: - return qir_FMIN(c, src[3], qir_FSUB(c, - qir_uniform_f(c, 1.0), - dst[3])); + if (channel != 3) { + return qir_FMUL(c, + val, + qir_FMIN(c, + src[3], + qir_FSUB(c, + qir_uniform_f(c, 1.0), + dst[3]))); + } else { + return val; + } case PIPE_BLENDFACTOR_CONST_COLOR: return qir_FMUL(c, val, get_temp_for_uniform(c, |