Mesa (main): mesa: use simple_mtx_t for TexMutex (v2)
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Dec 6 20:44:21 UTC 2021
Module: Mesa
Branch: main
Commit: de5c863a52949e05c418717aa549edfd8b96d5b8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=de5c863a52949e05c418717aa549edfd8b96d5b8
Author: Marek Olšák <marek.olsak at amd.com>
Date: Fri Oct 1 15:46:48 2021 -0400
mesa: use simple_mtx_t for TexMutex (v2)
change mtx_recursive -> mtx_plain, there's no recursive locking
Let's try this again! This was originally landed as f6abb3445b7f
("mesa: use simple_mtx_t for TexMutex") and then reverted with
781c0eafcf79 ("Revert "mesa: use simple_mtx_t for TexMutex"") because it
broke i965. Now that i965 is no longer in the tree, we can restore it.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com> (v1)
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14053>
---
src/mesa/main/glthread.c | 4 ++--
src/mesa/main/mtypes.h | 2 +-
src/mesa/main/shared.c | 4 ++--
src/mesa/main/texobj.c | 4 ++--
src/mesa/main/texobj.h | 4 ++--
5 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/mesa/main/glthread.c b/src/mesa/main/glthread.c
index 47353d5dd28..49c3502620e 100644
--- a/src/mesa/main/glthread.c
+++ b/src/mesa/main/glthread.c
@@ -55,7 +55,7 @@ glthread_unmarshal_batch(void *job, void *gdata, int thread_index)
_mesa_HashLockMutex(ctx->Shared->BufferObjects);
ctx->BufferObjectsLocked = true;
- mtx_lock(&ctx->Shared->TexMutex);
+ simple_mtx_lock(&ctx->Shared->TexMutex);
ctx->TexturesLocked = true;
while (pos < used) {
@@ -66,7 +66,7 @@ glthread_unmarshal_batch(void *job, void *gdata, int thread_index)
}
ctx->TexturesLocked = false;
- mtx_unlock(&ctx->Shared->TexMutex);
+ simple_mtx_unlock(&ctx->Shared->TexMutex);
ctx->BufferObjectsLocked = false;
_mesa_HashUnlockMutex(ctx->Shared->BufferObjects);
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index d96eeaa0684..f6e6001b565 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3411,7 +3411,7 @@ struct gl_shared_state
* \todo Improve the granularity of locking.
*/
/*@{*/
- mtx_t TexMutex; /**< texobj thread safety */
+ simple_mtx_t TexMutex; /**< texobj thread safety */
GLuint TextureStateStamp; /**< state notification for shared tex */
/*@}*/
diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c
index 9c6d2432370..0f7256b053f 100644
--- a/src/mesa/main/shared.c
+++ b/src/mesa/main/shared.c
@@ -128,7 +128,7 @@ _mesa_alloc_shared_state(struct gl_context *ctx)
assert(shared->DefaultTex[TEXTURE_1D_INDEX]->RefCount == 1);
/* Mutex and timestamp for texobj state validation */
- mtx_init(&shared->TexMutex, mtx_recursive);
+ simple_mtx_init(&shared->TexMutex, mtx_plain);
shared->TextureStateStamp = 0;
shared->FrameBuffers = _mesa_NewHashTable();
@@ -459,7 +459,7 @@ free_shared_state(struct gl_context *ctx, struct gl_shared_state *shared)
}
simple_mtx_destroy(&shared->Mutex);
- mtx_destroy(&shared->TexMutex);
+ simple_mtx_destroy(&shared->TexMutex);
free(shared);
}
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index bf5d8298a53..88b9ee63086 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -2152,7 +2152,7 @@ void
_mesa_lock_context_textures( struct gl_context *ctx )
{
if (!ctx->TexturesLocked)
- mtx_lock(&ctx->Shared->TexMutex);
+ simple_mtx_lock(&ctx->Shared->TexMutex);
if (ctx->Shared->TextureStateStamp != ctx->TextureStateTimestamp) {
ctx->NewState |= _NEW_TEXTURE_OBJECT;
@@ -2167,7 +2167,7 @@ _mesa_unlock_context_textures( struct gl_context *ctx )
{
assert(ctx->Shared->TextureStateStamp == ctx->TextureStateTimestamp);
if (!ctx->TexturesLocked)
- mtx_unlock(&ctx->Shared->TexMutex);
+ simple_mtx_unlock(&ctx->Shared->TexMutex);
}
diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h
index 22e98d9684e..c933390af45 100644
--- a/src/mesa/main/texobj.h
+++ b/src/mesa/main/texobj.h
@@ -103,7 +103,7 @@ static inline void
_mesa_lock_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
{
if (!ctx->TexturesLocked)
- mtx_lock(&ctx->Shared->TexMutex);
+ simple_mtx_lock(&ctx->Shared->TexMutex);
ctx->Shared->TextureStateStamp++;
(void) texObj;
}
@@ -113,7 +113,7 @@ _mesa_unlock_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
{
(void) texObj;
if (!ctx->TexturesLocked)
- mtx_unlock(&ctx->Shared->TexMutex);
+ simple_mtx_unlock(&ctx->Shared->TexMutex);
}
More information about the mesa-commit
mailing list