gallium/radeon: return correct values for BE in r600_translate_colorswap
authorOded Gabbay <oded.gabbay@gmail.com>
Wed, 24 Feb 2016 12:43:28 +0000 (14:43 +0200)
committerOded Gabbay <oded.gabbay@gmail.com>
Thu, 25 Feb 2016 07:21:08 +0000 (09:21 +0200)
Because I changed the swizzle check, I also need to adapt the return
values for each check.

It's basically almost the same as before, we just cross between STD and
STD_REV, and cross between ALT and ALT_REV

This fixes the rgba test in gl-1.0-readpixsanity (piglit) and also
fixes tri-flat (mesa demos).

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeon/r600_texture.c

index 1df0c300e859a9a78bbe30611a615b5de9f3eab7..9a3ccb5a6cf663a2b2b5e1b138a07e4fce8f4eae 100644 (file)
@@ -1304,13 +1304,13 @@ unsigned r600_translate_colorswap(enum pipe_format format)
                        return V_0280A0_SWAP_ALT_REV; /* WXYZ */
 #else
                if (HAS_SWIZZLE(1,W) && HAS_SWIZZLE(2,X))
-                       return V_0280A0_SWAP_STD; /* ZWXY */
+                       return V_0280A0_SWAP_STD_REV; /* ZWXY */
                else if (HAS_SWIZZLE(1,X) && HAS_SWIZZLE(2,W))
-                       return V_0280A0_SWAP_STD_REV; /* YXWZ */
+                       return V_0280A0_SWAP_STD; /* YXWZ */
                else if (HAS_SWIZZLE(1,W) && HAS_SWIZZLE(2,Z))
-                       return V_0280A0_SWAP_ALT; /* XWZY */
+                       return V_0280A0_SWAP_ALT_REV; /* XWZY */
                else if (HAS_SWIZZLE(1,Z) && HAS_SWIZZLE(2,W))
-                       return V_0280A0_SWAP_ALT_REV; /* YZWX */
+                       return V_0280A0_SWAP_ALT; /* YZWX */
 #endif
                break;
        }