mesa: Don't compute an unused texture completeness debug string.
authorEric Anholt <eric@anholt.net>
Tue, 2 Nov 2010 20:40:39 +0000 (13:40 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 2 Nov 2010 21:24:42 +0000 (14:24 -0700)
This showed up at about 1% on cairo-gl firefox-talos-gfx, where
glClear() is called while a texture is incomplete.

src/mesa/main/texobj.c

index e08df0f7fedebc7d6e39a2aacfe772cc71fd9a6a..f0bc447e33ba123148f45349567013b5b056996f 100644 (file)
@@ -382,12 +382,19 @@ _mesa_reference_texobj(struct gl_texture_object **ptr,
  */
 #if 0
 static void
-incomplete(const struct gl_texture_object *t, const char *why)
+incomplete(const struct gl_texture_object *t, const char *fmt, ...)
 {
-   printf("Texture Obj %d incomplete because: %s\n", t->Name, why);
+   va_list args;
+   char s[100];
+
+   va_start(args, fmt);
+   vsnprintf(s, sizeof(s), fmt, args);
+   va_end(args);
+
+   printf("Texture Obj %d incomplete because: %s\n", t->Name, s);
 }
 #else
-#define incomplete(t, why)
+#define incomplete(t, why, ...)
 #endif
 
 
@@ -416,18 +423,14 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx,
     * value.
     */
    if ((baseLevel < 0) || (baseLevel >= MAX_TEXTURE_LEVELS)) {
-      char s[100];
-      _mesa_snprintf(s, sizeof(s), "base level = %d is invalid", baseLevel);
-      incomplete(t, s);
+      incomplete(t, "base level = %d is invalid", baseLevel);
       t->_Complete = GL_FALSE;
       return;
    }
 
    /* Always need the base level image */
    if (!t->Image[0][baseLevel]) {
-      char s[100];
-      _mesa_snprintf(s, sizeof(s), "Image[baseLevel=%d] == NULL", baseLevel);
-      incomplete(t, s);
+      incomplete(t, "Image[baseLevel=%d] == NULL", baseLevel);
       t->_Complete = GL_FALSE;
       return;
    }