This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
Please also add the following to the commit message: Cc: "10.4 10.5" <mesa-sta...@lists.freedesktop.org> If you guys have the time, I'd also really appreciate a piglit test or two for this case. On 02/24/2015 10:02 AM, Eduardo Lima Mitev wrote: > From: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > > The optimization done by commit 34ec1a24d did not take it into account. > > Fixes: > > dEQP-GLES3.functional.shaders.random.all_features.fragment.20 > > Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > --- > src/glsl/opt_algebraic.cpp | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp > index c6f4a9c..8183d57 100644 > --- a/src/glsl/opt_algebraic.cpp > +++ b/src/glsl/opt_algebraic.cpp > @@ -578,9 +578,18 @@ ir_algebraic_visitor::handle_expression(ir_expression > *ir) > if (!is_vec_zero(zero)) > continue; > > - return new(mem_ctx) ir_expression(ir->operation, > - add->operands[0], > - neg(add->operands[1])); > + /* Depending of the zero position we want to optimize > + * (0 cmp x+y) into (-x cmp y) or (x+y cmp 0) into (x cmp -y) > + */ > + if (add_pos == 1) { > + return new(mem_ctx) ir_expression(ir->operation, > + neg(add->operands[0]), > + add->operands[1]); > + } else { > + return new(mem_ctx) ir_expression(ir->operation, > + add->operands[0], > + neg(add->operands[1])); > + } > } > break; > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev