From 64e9ec634b1d8ea20b83ab49f889121c17691368 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 22 Nov 2012 13:48:45 -0600 Subject: [PATCH] util/u_format: Fix format manipulation for big-endian This patch fixes various format manipulation for big-endian architectures. Reviewed-by: Roland Scheidegger Reviewed-by: Jose Fonseca --- src/gallium/auxiliary/util/u_format_other.c | 10 +++++----- 1 file 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; -- 2.7.4