On Sat, Jan 3, 2015 at 11:18 AM, Thomas Helland <thomashellan...@gmail.com> wrote: > --- > src/glsl/opt_minmax.cpp | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/src/glsl/opt_minmax.cpp b/src/glsl/opt_minmax.cpp > index 8d63d96..f066b45 100644 > --- a/src/glsl/opt_minmax.cpp > +++ b/src/glsl/opt_minmax.cpp > @@ -457,6 +457,22 @@ get_range(ir_rvalue *rval) > // Get the range of the addition of op0*op1 and op2 > return resolv_add_range(r0, r1); > > + case ir_triop_lrp: > + r0 = get_range(expr->operands[2]); > + > + // Get the range of (1-a) > + r1 = resolv_add_range(get_range(new(mem_ctx) ir_constant(1.0f)), > + get_range(neg(expr->operands[2])->as_rvalue())); > + > + // Get the range of (1-a)*y > + r1 = resolv_mul_range(r1, get_range(expr->operands[2])); > + > + // Get the range of a*x > + r0 = resolv_mul_range(r0, get_range(expr->operands[0]));
I think we've reversed the roles of x and y? It should be x * (1-a) + y * a, I think. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev