mesa: fix proxy textures becoming immutable and unusable
authorMikko Juola <mikjuo@gmail.com>
Tue, 30 Jul 2013 03:36:43 +0000 (06:36 +0300)
committerBrian Paul <brianp@vmware.com>
Wed, 31 Jul 2013 13:26:55 +0000 (07:26 -0600)
glTexStorage*() functions make textures immutable.  This carries on to
proxy textures.  Error checking in texture storage functions prevents
proxy textures from working after first time because internally, they
became immutable.

This commit makes the error checking ignore the immutability flag when
working with proxy textures.

Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/main/texstorage.c

index 77988971053ffdb78836330f1b2ca5c783f8d22f..7bd8652b540c22717920168d7793a008222bbb99 100644 (file)
@@ -342,7 +342,7 @@ tex_storage_error_check(struct gl_context *ctx, GLuint dims, GLenum target,
    }
 
    /* Check if texObj->Immutable is set */
-   if (texObj->Immutable) {
+   if (!_mesa_is_proxy_texture(target) && texObj->Immutable) {
       _mesa_error(ctx, GL_INVALID_OPERATION, "glTexStorage%uD(immutable)",
                   dims);
       return GL_TRUE;