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 7798897..7bd8652 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;