From ef280c95f2623357452f5ca8e65367b7ac30699f Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 21 Oct 2014 15:46:48 +0100 Subject: [PATCH] vc4: Fix SRC_ALPHA_SATURATE blending. Fixes glean blendFunc. --- src/gallium/drivers/vc4/vc4_program.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 7a2a975..c6d9fb3 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, -- 2.7.4