diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/glsl/ir_constant_expression.cpp | 14 | ||||
-rw-r--r-- | src/mesa/main/imports.c | 4 |
2 files changed, 6 insertions, 12 deletions
diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp index 2853c1643b3..309b6b72b5b 100644 --- a/src/glsl/ir_constant_expression.cpp +++ b/src/glsl/ir_constant_expression.cpp @@ -230,12 +230,9 @@ pack_snorm_1x8(float x) * follows: * * packSnorm4x8: round(clamp(c, -1, +1) * 127.0) - * - * We must first cast the float to an int, because casting a negative - * float to a uint is undefined. */ - return (uint8_t) (int) - _mesa_roundevenf(CLAMP(x, -1.0f, +1.0f) * 127.0f); + return (uint8_t) + _mesa_lroundevenf(CLAMP(x, -1.0f, +1.0f) * 127.0f); } /** @@ -252,12 +249,9 @@ pack_snorm_1x16(float x) * follows: * * packSnorm2x16: round(clamp(c, -1, +1) * 32767.0) - * - * We must first cast the float to an int, because casting a negative - * float to a uint is undefined. */ - return (uint16_t) (int) - _mesa_roundevenf(CLAMP(x, -1.0f, +1.0f) * 32767.0f); + return (uint16_t) + _mesa_lroundevenf(CLAMP(x, -1.0f, +1.0f) * 32767.0f); } /** diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c index 68c7316575c..350e6752c8b 100644 --- a/src/mesa/main/imports.c +++ b/src/mesa/main/imports.c @@ -369,7 +369,7 @@ _mesa_float_to_half(float val) * or normal. */ e = 0; - m = (int) _mesa_roundevenf((1 << 24) * fabsf(fi.f)); + m = _mesa_lroundevenf((1 << 24) * fabsf(fi.f)); } else if (new_exp > 15) { /* map this value to infinity */ @@ -383,7 +383,7 @@ _mesa_float_to_half(float val) * either normal or infinite. */ e = new_exp + 15; - m = (int) _mesa_roundevenf(flt_m / (float) (1 << 13)); + m = _mesa_lroundevenf(flt_m / (float) (1 << 13)); } } |