Module: Mesa Branch: master Commit: 2fd21c4098f4574f896d7baeec6a8e5f3b7783ab URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2fd21c4098f4574f896d7baeec6a8e5f3b7783ab
Author: Xavier Bouchoux <xavi...@gmail.com> Date: Wed Jan 28 02:31:58 2015 +0100 r600g/sb: fix a bug in constants folding optimisation pass ADD R6.y.1, R5.w.1, ~1|3f800000 ADD R6.y.2, |R6.y.1|, -0.0001|b8d1b717 was wrongly being converted to ADD R6.y.1, R5.w.1, ~1|3f800000 ADD R6.y.2, R5.w.1, -1.0001|bf800347 because abs() modifier was ignored. Signed-off-by: Xavier Bouchoux <xavi...@gmail.com> Reviewed-by: Glenn Kennard <glenn.kenn...@gmail.com> --- src/gallium/drivers/r600/sb/sb_expr.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/r600/sb/sb_expr.cpp b/src/gallium/drivers/r600/sb/sb_expr.cpp index 52c0c17..9c2274e 100644 --- a/src/gallium/drivers/r600/sb/sb_expr.cpp +++ b/src/gallium/drivers/r600/sb/sb_expr.cpp @@ -645,6 +645,7 @@ bool expr_handler::fold_assoc(alu_node *n) { (op == ALU_OP2_MUL_IEEE && d0->is_alu_op(ALU_OP2_MUL))) && !d0->bc.omod && !d0->bc.clamp && + !a->bc.src[0].abs && (!a->bc.src[0].neg || allow_neg)) { cur_neg ^= a->bc.src[0].neg; a = d0; @@ -678,6 +679,7 @@ bool expr_handler::fold_assoc(alu_node *n) { (op == ALU_OP2_MUL_IEEE && d1->is_alu_op(ALU_OP2_MUL))) && !d1->bc.omod && !d1->bc.clamp && + !a->bc.src[1].abs && (!a->bc.src[1].neg || allow_neg)) { cur_neg ^= a->bc.src[1].neg; a = d1; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit