Mesa (master): mesa: handle no-op cases sooner in _mesa_[Client] ActiveTexture()

Brian Paul brianp at kemper.freedesktop.org
Thu Aug 6 13:41:21 UTC 2015


Module: Mesa
Branch: master
Commit: 115964052b25a958b2ad4ec42ae07133b2768cf9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=115964052b25a958b2ad4ec42ae07133b2768cf9

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Aug  3 15:06:42 2015 -0600

mesa: handle no-op cases sooner in _mesa_[Client]ActiveTexture()

If the new texture unit is the current texture unit, we can return
before error checking.

Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/main/texstate.c |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 1e75e0a..9b5928c 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -289,23 +289,23 @@ _mesa_ActiveTexture(GLenum texture)
    GLuint k;
    GET_CURRENT_CONTEXT(ctx);
 
-   k = _mesa_max_tex_unit(ctx);
-
-   assert(k <= ARRAY_SIZE(ctx->Texture.Unit));
-
    if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE))
       _mesa_debug(ctx, "glActiveTexture %s\n",
                   _mesa_enum_to_string(texture));
 
+   if (ctx->Texture.CurrentUnit == texUnit)
+      return;
+
+   k = _mesa_max_tex_unit(ctx);
+
+   assert(k <= ARRAY_SIZE(ctx->Texture.Unit));
+
    if (texUnit >= k) {
       _mesa_error(ctx, GL_INVALID_ENUM, "glActiveTexture(texture=%s)",
                   _mesa_enum_to_string(texture));
       return;
    }
 
-   if (ctx->Texture.CurrentUnit == texUnit)
-      return;
-
    FLUSH_VERTICES(ctx, _NEW_TEXTURE);
 
    ctx->Texture.CurrentUnit = texUnit;
@@ -327,14 +327,14 @@ _mesa_ClientActiveTexture(GLenum texture)
       _mesa_debug(ctx, "glClientActiveTexture %s\n",
                   _mesa_enum_to_string(texture));
 
+   if (ctx->Array.ActiveTexture == texUnit)
+      return;
+
    if (texUnit >= ctx->Const.MaxTextureCoordUnits) {
       _mesa_error(ctx, GL_INVALID_ENUM, "glClientActiveTexture(texture)");
       return;
    }
 
-   if (ctx->Array.ActiveTexture == texUnit)
-      return;
-
    FLUSH_VERTICES(ctx, _NEW_ARRAY);
    ctx->Array.ActiveTexture = texUnit;
 }




More information about the mesa-commit mailing list