r300g: fix vertex data swizzle
authorMarek Olšák <maraeo@gmail.com>
Sun, 17 Jan 2010 13:54:35 +0000 (14:54 +0100)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Mon, 18 Jan 2010 10:35:08 +0000 (02:35 -0800)
src/gallium/drivers/r300/r300_state_inlines.h

index a9ee0a26f14f0e544230f04477097703f99717a8..e2180b33b77841655034d5bfb0734ace8c900a75 100644 (file)
@@ -551,7 +551,11 @@ r300_translate_vertex_data_swizzle(enum pipe_format format) {
     /* Swizzles for 8bits formats are in the reversed order, not sure why. */
     if (desc->channel[0].size == 8) {
         for (i = 0; i < 4; i++) {
-            swizzle[i] = 3 - desc->swizzle[i];
+            if (desc->swizzle[i] <= 3) {
+                swizzle[i] = 3 - desc->swizzle[i];
+            } else {
+                swizzle[i] = desc->swizzle[i];
+            }
         }
     } else {
         for (i = 0; i < 4; i++) {