diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/teximage.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index e940ecd7323..f90765f40fa 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -5588,7 +5588,7 @@ compressed_tex_sub_image(unsigned dim, GLenum target, GLuint textureOrIndex, const GLvoid *data, enum tex_mode mode, const char *caller) { - struct gl_texture_object *texObj; + struct gl_texture_object *texObj = NULL; struct gl_texture_image *texImage; bool no_error = false; GET_CURRENT_CONTEXT(ctx); @@ -5622,14 +5622,9 @@ compressed_tex_sub_image(unsigned dim, GLenum target, GLuint textureOrIndex, case TEX_MODE_CURRENT_ERROR: default: assert(textureOrIndex == 0); - texObj = _mesa_get_current_tex_object(ctx, target); break; } - if (!texObj) - return; - - if (!no_error && compressed_subtexture_target_check(ctx, target, dim, format, mode == TEX_MODE_DSA_ERROR, @@ -5637,7 +5632,12 @@ compressed_tex_sub_image(unsigned dim, GLenum target, GLuint textureOrIndex, return; } - if (!no_error && !texObj) + if (mode == TEX_MODE_CURRENT_NO_ERROR || + mode == TEX_MODE_CURRENT_ERROR) { + texObj = _mesa_get_current_tex_object(ctx, target); + } + + if (!texObj) return; if (!no_error && |