Mesa (master): util/u_format: Fix format manipulation for big-endian

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Nov 29 11:54:46 UTC 2012


Module: Mesa
Branch: master
Commit: 64e9ec634b1d8ea20b83ab49f889121c17691368
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=64e9ec634b1d8ea20b83ab49f889121c17691368

Author: Adhemerval Zanella <azanella at linux.vnet.ibm.com>
Date:   Thu Nov 22 13:48:45 2012 -0600

util/u_format: Fix format manipulation for big-endian

This patch fixes various format manipulation for big-endian
architectures.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

---

 src/gallium/auxiliary/util/u_format_other.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_format_other.c b/src/gallium/auxiliary/util/u_format_other.c
index c23f4ee..85001c1 100644
--- a/src/gallium/auxiliary/util/u_format_other.c
+++ b/src/gallium/auxiliary/util/u_format_other.c
@@ -342,7 +342,7 @@ util_format_r8g8bx_snorm_unpack_rgba_float(float *dst_row, unsigned dst_stride,
          int16_t r, g;
 
 #ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
+         value = util_bswap16(value);
 #endif
 
          r = ((int16_t)(value << 8)) >> 8;
@@ -374,7 +374,7 @@ util_format_r8g8bx_snorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_strid
          int16_t r, g;
 
 #ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
+         value = util_bswap16(value);
 #endif
 
          r = ((int16_t)(value << 8)) >> 8;
@@ -408,7 +408,7 @@ util_format_r8g8bx_snorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride,
          value |= (uint16_t)((((int8_t)(CLAMP(src[1], -1, 1) * 0x7f)) & 0xff) << 8) ;
 
 #ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
+         value = util_bswap16(value);
 #endif
 
          *dst++ = value;
@@ -438,7 +438,7 @@ util_format_r8g8bx_snorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride,
          value |= (src[1] >> 1) << 8;
 
 #ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
+         value = util_bswap16(value);
 #endif
 
          *dst++ = value;
@@ -459,7 +459,7 @@ util_format_r8g8bx_snorm_fetch_rgba_float(float *dst, const uint8_t *src,
    int16_t r, g;
 
 #ifdef PIPE_ARCH_BIG_ENDIAN
-   value = util_bswap32(value);
+   value = util_bswap16(value);
 #endif
 
    r = ((int16_t)(value << 8)) >> 8;




More information about the mesa-commit mailing list