summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdhemerval Zanella <[email protected]>2012-11-22 13:48:45 -0600
committerJosé Fonseca <[email protected]>2012-11-29 11:54:23 +0000
commit64e9ec634b1d8ea20b83ab49f889121c17691368 (patch)
tree182b9bacd4ef5a2e3750e8caec8fd1a5d9315b6a
parente25abacc1883f1b2e09c32230e35ffae7df5e61b (diff)
util/u_format: Fix format manipulation for big-endian
This patch fixes various format manipulation for big-endian architectures. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
-rw-r--r--src/gallium/auxiliary/util/u_format_other.c10
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 c23f4ee4ac5..85001c14f22 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;