r300: set gl_texture_image::TexFormat field in r300SetTexBuffer2()
authorBrian Paul <brianp@vmware.com>
Mon, 15 Nov 2010 16:24:42 +0000 (09:24 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 15 Nov 2010 16:31:27 +0000 (09:31 -0700)
See https://bugs.freedesktop.org/show_bug.cgi?id=31544

Note: this is a candidate for the 7.9 branch

src/mesa/drivers/dri/r300/r300_texstate.c

index 0116c5d..a4fbd99 100644 (file)
@@ -481,18 +481,24 @@ void r300SetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint texture_format
        pitch_val = rb->pitch;
        switch (rb->cpp) {
        case 4:
-               if (texture_format == __DRI_TEXTURE_FORMAT_RGB)
+               if (texture_format == __DRI_TEXTURE_FORMAT_RGB) {
+                       texImage->TexFormat = MESA_FORMAT_RGB888;
                        t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, ONE, W8Z8Y8X8);
-               else
+               }
+               else {
+                       texImage->TexFormat = MESA_FORMAT_ARGB8888;
                        t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, W, W8Z8Y8X8);
+               }
                pitch_val /= 4;
                break;
        case 3:
        default:
+               texImage->TexFormat = MESA_FORMAT_RGB888;
                t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, ONE, W8Z8Y8X8);
                pitch_val /= 4;
                break;
        case 2:
+               texImage->TexFormat = MESA_FORMAT_RGB565;
                t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, ONE, Z5Y6X5);
                pitch_val /= 2;
                break;