mesa: Skip redundant texture completeness checking during image validation.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 3 Sep 2015 13:12:59 +0000 (16:12 +0300)
committerFrancisco Jerez <currojerez@riseup.net>
Fri, 9 Oct 2015 14:48:46 +0000 (17:48 +0300)
The call to _mesa_test_texobj_completeness() is unnecessary if the
texture is already known to be complete.  If the texture object is
dirtied in the meantime _BaseComplete and _MipmapComplete will be
reset to false.  _mesa_is_image_unit_valid() will start to be called
more frequently in a future commit, so it seems desirable to avoid the
unnecessary work.

Tested-by: Ye Tian <yex.tian@intel.com>
CC: "11.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/shaderimage.c

index acc8fa91e950edcb7f45e81422864113d3ce7b31..0f0200a5b7754134d8c69c8df42d1443ad61feea 100644 (file)
@@ -424,7 +424,8 @@ _mesa_is_image_unit_valid(struct gl_context *ctx, struct gl_image_unit *u)
    if (!t)
       return GL_FALSE;
 
-   _mesa_test_texobj_completeness(ctx, t);
+   if (!t->_BaseComplete && !t->_MipmapComplete)
+       _mesa_test_texobj_completeness(ctx, t);
 
    if (u->Level < t->BaseLevel ||
        u->Level > t->_MaxLevel ||