[Mesa-dev] [PATCH] mesa: stop abstracting texture object hashtable locking

Timothy Arceri tarceri at itsqueeze.com
Thu Apr 6 04:43:32 UTC 2017


This doesn't do anything useful so just remove it.
---
 src/mesa/main/shaderimage.c |  5 +++--
 src/mesa/main/texobj.c      | 17 ++---------------
 src/mesa/main/texobj.h      |  6 ------
 3 files changed, 5 insertions(+), 23 deletions(-)

diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c
index 5cce3ac..45b72c9 100644
--- a/src/mesa/main/shaderimage.c
+++ b/src/mesa/main/shaderimage.c
@@ -23,20 +23,21 @@
  * Authors:
  *    Francisco Jerez <currojerez at riseup.net>
  */
 
 #include <assert.h>
 
 #include "shaderimage.h"
 #include "mtypes.h"
 #include "formats.h"
 #include "errors.h"
+#include "hash.h"
 #include "context.h"
 #include "texobj.h"
 #include "teximage.h"
 #include "enums.h"
 
 /*
  * Define endian-invariant aliases for some mesa formats that are
  * defined in terms of their channel layout from LSB to MSB in a
  * 32-bit word.  The actual byte offsets matter here because the user
  * is allowed to bit-cast one format into another and get predictable
@@ -666,21 +667,21 @@ _mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures)
     *          errors and then a second pass to actually perform the
     *          bindings.  Should we have different error semantics?
     *
     *       RESOLVED:  Yes.  In this specification, when the parameters for
     *       one of the <count> binding points are invalid, that binding
     *       point is not updated and an error will be generated.  However,
     *       other binding points in the same command will be updated if
     *       their parameters are valid and no other error occurs."
     */
 
-   _mesa_begin_texture_lookups(ctx);
+   _mesa_HashLockMutex(ctx->Shared->TexObjects);
 
    for (i = 0; i < count; i++) {
       struct gl_image_unit *u = &ctx->ImageUnits[first + i];
       const GLuint texture = textures ? textures[i] : 0;
 
       if (texture != 0) {
          struct gl_texture_object *texObj;
          GLenum tex_format;
 
          if (!u->TexObj || u->TexObj->Name != texture) {
@@ -754,12 +755,12 @@ _mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures)
          _mesa_reference_texobj(&u->TexObj, NULL);
          u->Level = 0;
          u->Layered = GL_FALSE;
          u->_Layer = u->Layer = 0;
          u->Access = GL_READ_ONLY;
          u->Format = GL_R8;
          u->_ActualFormat = MESA_FORMAT_R_UNORM8;
       }
    }
 
-   _mesa_end_texture_lookups(ctx);
+   _mesa_HashUnlockMutex(ctx->Shared->TexObjects);
 }
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 0481309..a96b394 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -121,33 +121,20 @@ _mesa_lookup_texture_err(struct gl_context *ctx, GLuint id, const char* func)
 
    if (id > 0)
       texObj = _mesa_lookup_texture(ctx, id); /* Returns NULL if not found. */
 
    if (!texObj)
       _mesa_error(ctx, GL_INVALID_OPERATION, "%s(texture)", func);
 
    return texObj;
 }
 
-void
-_mesa_begin_texture_lookups(struct gl_context *ctx)
-{
-   _mesa_HashLockMutex(ctx->Shared->TexObjects);
-}
-
-
-void
-_mesa_end_texture_lookups(struct gl_context *ctx)
-{
-   _mesa_HashUnlockMutex(ctx->Shared->TexObjects);
-}
-
 
 struct gl_texture_object *
 _mesa_lookup_texture_locked(struct gl_context *ctx, GLuint id)
 {
    return (struct gl_texture_object *)
       _mesa_HashLookupLocked(ctx->Shared->TexObjects, id);
 }
 
 /**
  * Return a pointer to the current texture object for the given target
@@ -1815,21 +1802,21 @@ _mesa_BindTextures(GLuint first, GLsizei count, const GLuint *textures)
        *          errors and then a second pass to actually perform the
        *          bindings.  Should we have different error semantics?
        *
        *       RESOLVED:  Yes.  In this specification, when the parameters for
        *       one of the <count> binding points are invalid, that binding
        *       point is not updated and an error will be generated.  However,
        *       other binding points in the same command will be updated if
        *       their parameters are valid and no other error occurs."
        */
 
-      _mesa_begin_texture_lookups(ctx);
+      _mesa_HashLockMutex(ctx->Shared->TexObjects);
 
       for (i = 0; i < count; i++) {
          if (textures[i] != 0) {
             struct gl_texture_unit *texUnit = &ctx->Texture.Unit[first + i];
             struct gl_texture_object *current = texUnit->_Current;
             struct gl_texture_object *texObj;
 
             if (current && current->Name == textures[i])
                texObj = current;
             else
@@ -1847,21 +1834,21 @@ _mesa_BindTextures(GLuint first, GLsizei count, const GLuint *textures)
                _mesa_error(ctx, GL_INVALID_OPERATION,
                            "glBindTextures(textures[%d]=%u is not zero "
                            "or the name of an existing texture object)",
                            i, textures[i]);
             }
          } else {
             unbind_textures_from_unit(ctx, first + i);
          }
       }
 
-      _mesa_end_texture_lookups(ctx);
+      _mesa_HashUnlockMutex(ctx->Shared->TexObjects);
    } else {
       /* Unbind all textures in the range <first> through <first>+<count>-1 */
       for (i = 0; i < count; i++)
          unbind_textures_from_unit(ctx, first + i);
    }
 }
 
 
 /**
  * Set texture priorities.
diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h
index 8776763..a9db167 100644
--- a/src/mesa/main/texobj.h
+++ b/src/mesa/main/texobj.h
@@ -47,26 +47,20 @@ extern "C" {
  * \name Internal functions
  */
 /*@{*/
 
 extern struct gl_texture_object *
 _mesa_lookup_texture(struct gl_context *ctx, GLuint id);
 
 extern struct gl_texture_object *
 _mesa_lookup_texture_err(struct gl_context *ctx, GLuint id, const char* func);
 
-extern void
-_mesa_begin_texture_lookups(struct gl_context *ctx);
-
-extern void
-_mesa_end_texture_lookups(struct gl_context *ctx);
-
 extern struct gl_texture_object *
 _mesa_lookup_texture_locked(struct gl_context *ctx, GLuint id);
 
 extern struct gl_texture_object *
 _mesa_get_current_tex_object(struct gl_context *ctx, GLenum target);
 
 extern struct gl_texture_object *
 _mesa_new_texture_object( struct gl_context *ctx, GLuint name, GLenum target );
 
 extern void
-- 
2.9.3



More information about the mesa-dev mailing list