[Mesa-dev] [PATCH v2 01/23] mesa/format_utils: Fix a bug in unorm_to_float helper function

Iago Toral Quiroga itoral at igalia.com
Mon Dec 1 03:04:10 PST 2014


From: Jason Ekstrand <jason.ekstrand at intel.com>

This patch fixes the return of a wrong value when x is lower than
-MAX_INT(src_bits) as the result would not be between [-1.0 1.0].

v2 by Samuel Iglesias <siglesias at igalia.com>:
    - Modify unorm_to_float() to avoid doing the division when
      x == -MAX_INT(src_bits)
---
 src/mesa/main/format_utils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/main/format_utils.c b/src/mesa/main/format_utils.c
index 93a0cea..5dd0848 100644
--- a/src/mesa/main/format_utils.c
+++ b/src/mesa/main/format_utils.c
@@ -152,7 +152,7 @@ unorm_to_float(unsigned x, unsigned src_bits)
 static inline float
 snorm_to_float(int x, unsigned src_bits)
 {
-   if (x == -MAX_INT(src_bits))
+   if (x <= -MAX_INT(src_bits))
       return -1.0f;
    else
       return x * (1.0f / (float)MAX_INT(src_bits));
-- 
1.9.1



More information about the mesa-dev mailing list