From: Kenneth Graunke Date: Fri, 23 Jul 2010 00:44:34 +0000 (-0700) Subject: ir_constant_expression: Fix broken code for floating point modulus. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3e882ec84a2493da74c55d105010a37de521e593;p=mesa.git ir_constant_expression: Fix broken code for floating point modulus. It's supposed to be x - y * floor(x/y), not (x - y) * floor(x/y). --- diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp index 5bef17c7554..f15530ae89e 100644 --- a/src/glsl/ir_constant_expression.cpp +++ b/src/glsl/ir_constant_expression.cpp @@ -533,7 +533,7 @@ ir_expression::constant_expression_value() /* We don't use fmod because it rounds toward zero; GLSL specifies * the use of floor. */ - data.f[c] = (op[0]->value.f[c0] - op[1]->value.f[c1]) + data.f[c] = op[0]->value.f[c0] - op[1]->value.f[c1] * floorf(op[0]->value.f[c0] / op[1]->value.f[c1]); break; default: