From: Eric Anholt Date: Tue, 21 Oct 2014 14:46:48 +0000 (+0100) Subject: vc4: Fix SRC_ALPHA_SATURATE blending. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ef280c95f2623357452f5ca8e65367b7ac30699f;p=mesa.git vc4: Fix SRC_ALPHA_SATURATE blending. Fixes glean blendFunc. --- 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,