r300g: add a default channel ordering of texture border for unhandled formats
authorMarek Olšák <maraeo@gmail.com>
Wed, 27 Oct 2010 19:13:41 +0000 (21:13 +0200)
committerMarek Olšák <maraeo@gmail.com>
Wed, 27 Oct 2010 19:21:23 +0000 (21:21 +0200)
It should fix the texture border for compressed textures.
Broken since 8449a4772a73f613d9425b691cffba6a261df813.

src/gallium/drivers/r300/r300_state_derived.c

index efec9495104e0ee30f911010cddf20cbac32994e..50366e32c2b1601e9ee1dbb868060e9941dff307 100644 (file)
@@ -620,13 +620,6 @@ static uint32_t r300_get_border_color(enum pipe_format format,
             }
             break;
 
-        case 8:
-            r = ((float_to_ubyte(border_swizzled[0]) & 0xff) << 0) |
-                ((float_to_ubyte(border_swizzled[1]) & 0xff) << 8) |
-                ((float_to_ubyte(border_swizzled[2]) & 0xff) << 16) |
-                ((float_to_ubyte(border_swizzled[3]) & 0xff) << 24);
-            break;
-
         case 16:
             r = ((float_to_ubyte(border_swizzled[2]) & 0xff) << 0) |
                 ((float_to_ubyte(border_swizzled[1]) & 0xff) << 8) |
@@ -634,9 +627,12 @@ static uint32_t r300_get_border_color(enum pipe_format format,
                 ((float_to_ubyte(border_swizzled[3]) & 0xff) << 24);
             break;
 
+        case 8:
         default:
-            assert(0);
-            r = 0;
+            r = ((float_to_ubyte(border_swizzled[0]) & 0xff) << 0) |
+                ((float_to_ubyte(border_swizzled[1]) & 0xff) << 8) |
+                ((float_to_ubyte(border_swizzled[2]) & 0xff) << 16) |
+                ((float_to_ubyte(border_swizzled[3]) & 0xff) << 24);
             break;
     }