From: Brian Paul Date: Thu, 1 Dec 2011 03:35:02 +0000 (-0700) Subject: mesa: fix unpacking of RG88_REV texels X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0be753a14333b1298649da1d889fe1fc7d3e9f43;p=mesa.git mesa: fix unpacking of RG88_REV texels R should be in the high byte and G in the low byte for this format. --- diff --git a/src/mesa/main/format_unpack.c b/src/mesa/main/format_unpack.c index 7da95465b4e..079f71b13ee 100644 --- a/src/mesa/main/format_unpack.c +++ b/src/mesa/main/format_unpack.c @@ -522,8 +522,8 @@ unpack_RG88_REV(const void *src, GLfloat dst[][4], GLuint n) const GLushort *s = ((const GLushort *) src); GLuint i; for (i = 0; i < n; i++) { - dst[i][RCOMP] = UBYTE_TO_FLOAT( s[i] & 0xff ); - dst[i][GCOMP] = UBYTE_TO_FLOAT( s[i] >> 8 ); + dst[i][RCOMP] = UBYTE_TO_FLOAT( s[i] >> 8 ); + dst[i][GCOMP] = UBYTE_TO_FLOAT( s[i] & 0xff ); dst[i][BCOMP] = 0.0; dst[i][ACOMP] = 1.0; } diff --git a/src/mesa/swrast/s_texfetch_tmp.h b/src/mesa/swrast/s_texfetch_tmp.h index 4ee05a5ea5a..88711b03e4e 100644 --- a/src/mesa/swrast/s_texfetch_tmp.h +++ b/src/mesa/swrast/s_texfetch_tmp.h @@ -1040,8 +1040,8 @@ static void FETCH(f_rg88_rev)( const struct swrast_texture_image *texImage, GLint i, GLint j, GLint k, GLfloat *texel ) { const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1); - texel[RCOMP] = UBYTE_TO_FLOAT( s & 0xff ); - texel[GCOMP] = UBYTE_TO_FLOAT( s >> 8 ); + texel[RCOMP] = UBYTE_TO_FLOAT( s >> 8 ); + texel[GCOMP] = UBYTE_TO_FLOAT( s & 0xff ); texel[BCOMP] = 0.0; texel[ACOMP] = 1.0; } @@ -1052,7 +1052,7 @@ static void store_texel_rg88_rev(struct swrast_texture_image *texImage, { const GLubyte *rgba = (const GLubyte *) texel; GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); - *dst = PACK_COLOR_88(rgba[GCOMP], rgba[RCOMP]); + *dst = PACK_COLOR_88(rgba[RCOMP], rgba[GCOMP]); } #endif