r300: fix regression introduced by da73c1ed
authorMaciej Cencora <m.cencora@gmail.com>
Sun, 13 Dec 2009 16:18:50 +0000 (17:18 +0100)
committerMaciej Cencora <m.cencora@gmail.com>
Sun, 13 Dec 2009 16:20:11 +0000 (17:20 +0100)
The 0 value is correct for I8 format.

src/mesa/drivers/dri/r300/r300_blit.c
src/mesa/drivers/dri/r300/r300_tex.h
src/mesa/drivers/dri/r300/r300_texstate.c

index ff678bac4548b02e2f03a6a3a3f12d1d597a8cc7..3523c2792e54526756dd5715e32861a91b4ad750 100644 (file)
@@ -141,7 +141,7 @@ static void r300_emit_tx_setup(struct r300_context *r300,
 
     assert(width <= 2048);
     assert(height <= 2048);
-    assert(r300TranslateTexFormat(mesa_format) != 0);
+    assert(r300TranslateTexFormat(mesa_format) >= 0);
     assert(offset % 32 == 0);
 
     BEGIN_BATCH(17);
index beb10072e9c69470d48c2efbc6f9a700e4832e37..6ede0fe25c9047241a2bea540403b6f4e050f55d 100644 (file)
@@ -51,6 +51,6 @@ extern GLboolean r300ValidateBuffers(GLcontext * ctx);
 
 extern void r300InitTextureFuncs(struct dd_function_table *functions);
 
-uint32_t r300TranslateTexFormat(gl_format mesaFormat);
+int32_t r300TranslateTexFormat(gl_format mesaFormat);
 
 #endif                         /* __r300_TEX_H__ */
index 6db56ba618f801bab66f19f3eb9252a55ab6b50b..d4a728381e46a2cc11834d28307ffbf311aea439 100644 (file)
@@ -59,7 +59,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  * identically.  -- paulus
  */
 
-uint32_t r300TranslateTexFormat(gl_format mesaFormat)
+int32_t r300TranslateTexFormat(gl_format mesaFormat)
 {
        switch (mesaFormat)
        {
@@ -168,7 +168,7 @@ uint32_t r300TranslateTexFormat(gl_format mesaFormat)
                case MESA_FORMAT_SRGBA_DXT5:
                        return R300_EASY_TX_FORMAT(Y, Z, W, X, DXT5) | R300_TX_FORMAT_GAMMA;
                default:
-                       return 0;
+                       return -1;
        }
 };
 
@@ -252,12 +252,13 @@ static void setup_hardware_state(r300ContextPtr rmesa, radeonTexObj *t)
                if (firstImage->_BaseFormat == GL_DEPTH_COMPONENT) {
                        r300SetDepthTexMode(&t->base);
                } else {
-                       t->pp_txformat = r300TranslateTexFormat(firstImage->TexFormat);
-                       if (t->pp_txformat == 0) {
+                       int32_t txformat = r300TranslateTexFormat(firstImage->TexFormat);
+                       if (txformat < 0) {
                                _mesa_problem(rmesa->radeon.glCtx, "%s: Invalid format %s",
                                                          __FUNCTION__, _mesa_get_format_name(firstImage->TexFormat));
                                _mesa_exit(1);
                        }
+                       t->pp_txformat = (uint32_t) txformat;
                }
        }