This patch fixes a bug in big-endian handling, where the previous swizzle info wasn't cleared before a new swizzle info was inserted into the format field using a bitwise-OR operation.
Signed-off-by: Oded Gabbay <oded.gab...@gmail.com> CC: "10.5 10.6" <mesa-sta...@lists.freedesktop.org> --- src/mesa/main/formats.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index 7e451ca..eacd8b7 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -191,6 +191,9 @@ static inline void _mesa_array_format_set_swizzle(mesa_array_format *f, int32_t x, int32_t y, int32_t z, int32_t w) { + /* clear old swizzle info */ + *f &= ~((0x7 << 8) | (0x7 << 11) | (0x7 << 14) | (0x7 << 17)); + *f |= ((x << 8 ) & MESA_ARRAY_FORMAT_SWIZZLE_X_MASK) | ((y << 11) & MESA_ARRAY_FORMAT_SWIZZLE_Y_MASK) | ((z << 14) & MESA_ARRAY_FORMAT_SWIZZLE_Z_MASK) | -- 2.4.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev