mesa/format_utils: Add src_bits == dst_bits cases to unorm_to_unorm
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 10 Aug 2015 05:03:00 +0000 (22:03 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 10 Aug 2015 18:11:47 +0000 (11:11 -0700)
This better ensures that the src_bits == dst_bits case gets optimized away.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/mesa/main/format_utils.h

index 00ec7774dd26d36670582cd10471b1a7601ab268..618f43d0aaadb68771f74f78b337c9cec7bf11d6 100644 (file)
@@ -99,7 +99,7 @@ _mesa_unorm_to_unorm(unsigned x, unsigned src_bits, unsigned dst_bits)
 {
    if (src_bits < dst_bits) {
       return EXTEND_NORMALIZED_INT(x, src_bits, dst_bits);
-   } else {
+   } else if (src_bits > dst_bits) {
       unsigned src_half = (1 << (src_bits - 1)) - 1;
 
       if (src_bits + dst_bits > sizeof(x) * 8) {
@@ -109,6 +109,8 @@ _mesa_unorm_to_unorm(unsigned x, unsigned src_bits, unsigned dst_bits)
       } else {
          return (x * MAX_UINT(dst_bits) + src_half) / MAX_UINT(src_bits);
       }
+   } else {
+      return x;
    }
 }