mesa: Fix error reporting in _mesa_invalidate_pbo_{compressed_,}teximage.
authorPaul Berry <stereotype441@gmail.com>
Mon, 31 Dec 2012 17:00:41 +0000 (09:00 -0800)
committerPaul Berry <stereotype441@gmail.com>
Wed, 2 Jan 2013 18:28:23 +0000 (10:28 -0800)
The old error reporting was completely bogus, passing _mesa_error() a
format string that didn't even match the remaining arguments.  Also,
in many cases the number of dimensions in the TexImage call was not
preserved in the error message (e.g. an error in glTexImage2D was
reported simply as an error in glTexImage).

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/mesa/drivers/dri/nouveau/nouveau_texture.c
src/mesa/main/pbo.c
src/mesa/main/pbo.h
src/mesa/main/texstore.c

index 288b510e12a1561ed7890edd20b7b1ccda925616..64cd23b3851e987cb29a9e616e39835a440fb79c 100644 (file)
@@ -501,7 +501,7 @@ nouveau_teximage(struct gl_context *ctx, GLint dims,
 
        if (compressed)
                pixels = _mesa_validate_pbo_compressed_teximage(ctx,
-                       imageSize,
+                       dims, imageSize,
                        pixels, packing, "glCompressedTexImage");
        else
                pixels = _mesa_validate_pbo_teximage(ctx,
@@ -576,7 +576,7 @@ nouveau_texsubimage(struct gl_context *ctx, GLint dims,
 
        if (compressed)
                pixels = _mesa_validate_pbo_compressed_teximage(ctx,
-                               imageSize,
+                               dims, imageSize,
                                pixels, packing, "glCompressedTexSubImage");
        else
                pixels = _mesa_validate_pbo_teximage(ctx,
index c73d7492f552bbaf77b8727577d9b8eade9ed7db..0dc4c04eb40b8131cc9e5d8a16b0cb9312782184 100644 (file)
@@ -342,7 +342,8 @@ _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
    }
    if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
                                   format, type, INT_MAX, pixels)) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, funcName, "(invalid PBO access)");
+      _mesa_error(ctx, GL_INVALID_OPERATION, "%s%uD(invalid PBO access)",
+                  funcName, dimensions);
       return NULL;
    }
 
@@ -351,7 +352,8 @@ _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
                                                GL_MAP_READ_BIT,
                                                unpack->BufferObj);
    if (!buf) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, funcName, "(PBO is mapped)");
+      _mesa_error(ctx, GL_INVALID_OPERATION, "%s%uD(PBO is mapped)", funcName,
+                  dimensions);
       return NULL;
    }
 
@@ -368,7 +370,8 @@ _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
  */
 const GLvoid *
 _mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
-                                 GLsizei imageSize, const GLvoid *pixels,
+                                 GLuint dimensions, GLsizei imageSize,
+                                 const GLvoid *pixels,
                                  const struct gl_pixelstore_attrib *packing,
                                  const char *funcName)
 {
@@ -381,7 +384,8 @@ _mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
    if ((const GLubyte *) pixels + imageSize >
        ((const GLubyte *) 0) + packing->BufferObj->Size) {
       /* out of bounds read! */
-      _mesa_error(ctx, GL_INVALID_OPERATION, funcName, "(invalid PBO access)");
+      _mesa_error(ctx, GL_INVALID_OPERATION, "%s%uD(invalid PBO access)",
+                  funcName, dimensions);
       return NULL;
    }
 
@@ -390,7 +394,8 @@ _mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
                                               GL_MAP_READ_BIT,
                                               packing->BufferObj);
    if (!buf) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, funcName, "(PBO is mapped");
+      _mesa_error(ctx, GL_INVALID_OPERATION, "%s%uD(PBO is mapped)", funcName,
+                  dimensions);
       return NULL;
    }
 
index 00a6e617f22d95110dd09b3931a74c81ee615406..9eba335148437f49dbd197fdd2f5be5ebaa21518 100644 (file)
@@ -81,7 +81,8 @@ _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
 
 extern const GLvoid *
 _mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
-                                    GLsizei imageSize, const GLvoid *pixels,
+                                    GLuint dimensions, GLsizei imageSize,
+                                    const GLvoid *pixels,
                                     const struct gl_pixelstore_attrib *packing,
                                     const char *funcName);
 
index 26c5b670312d3f197c2f641e30547afedfb4d063..86698985bb0ca60454a0db408f0cdb3a127bf76a 100644 (file)
@@ -4496,9 +4496,9 @@ _mesa_store_compressed_texsubimage(struct gl_context *ctx, GLuint dims,
    _mesa_get_format_block_size(texFormat, &bw, &bh);
 
    /* get pointer to src pixels (may be in a pbo which we'll map here) */
-   data = _mesa_validate_pbo_compressed_teximage(ctx, imageSize, data,
+   data = _mesa_validate_pbo_compressed_teximage(ctx, dims, imageSize, data,
                                                  &ctx->Unpack,
-                                                 "glCompressedTexSubImage2D");
+                                                 "glCompressedTexSubImage");
    if (!data)
       return;