From: Kenneth Graunke Date: Wed, 15 Jun 2011 06:13:27 +0000 (-0700) Subject: glsl: Don't use MOD_TO_FRACT lowering on GLSL 1.30's % operator. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=578f6a9534ec6ea1ffc6638b98f0b5570a85a19d;p=mesa.git glsl: Don't use MOD_TO_FRACT lowering on GLSL 1.30's % operator. MOD_TO_FRACT was designed to lower the GLSL 1.20 mod() function, which operates on floating point values. However, we also use ir_binop_mod for GLSL 1.30's % operator, which operates on integers. For now, make MOD_TO_FRACT only apply to floating-point mod operations. In the future, we may want to add a lowering pass for integer-based mod. Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-by: Eric Anholt --- diff --git a/src/glsl/lower_instructions.cpp b/src/glsl/lower_instructions.cpp index 94b8c4a6836..806f8639959 100644 --- a/src/glsl/lower_instructions.cpp +++ b/src/glsl/lower_instructions.cpp @@ -276,7 +276,7 @@ lower_instructions_visitor::visit_leave(ir_expression *ir) break; case ir_binop_mod: - if (lowering(MOD_TO_FRACT)) + if (lowering(MOD_TO_FRACT) && ir->type->is_float()) mod_to_fract(ir); break;