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).
This commit is contained in:
@@ -533,7 +533,7 @@ ir_expression::constant_expression_value()
|
|||||||
/* We don't use fmod because it rounds toward zero; GLSL specifies
|
/* We don't use fmod because it rounds toward zero; GLSL specifies
|
||||||
* the use of floor.
|
* 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]);
|
* floorf(op[0]->value.f[c0] / op[1]->value.f[c1]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user