[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