From f6abb3445b7f244c0243f03bd7cf1e7ad1e2f1ab Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 1 Oct 2021 15:46:48 -0400 Subject: [PATCH] mesa: use simple_mtx_t for TexMutex change mtx_recursive -> mtx_plain, there's no recursive locking Acked-By: Mike Blumenkrantz Reviewed-by: Timothy Arceri Reviewed-by: Kristian H. Kristensen Part-of: --- 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 47353d5..49c3502 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 989d652..96875b9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -3387,7 +3387,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 ac06d43..f91dfd6 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 ff594b0..1028508 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -2161,7 +2161,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; @@ -2176,7 +2176,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 22e98d9..c933390 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); } -- 2.7.4