[Mesa-dev] [PATCH 2/3] mesa: Use a recursive mutex for the texture lock.

Kristian Høgsberg krh at bitplanet.net
Mon Aug 18 17:20:20 PDT 2014


From: Kenneth Graunke <kenneth at whitecape.org>

This avoids problems with things like meta operations calling functions
that want to take the lock while the lock is already held.  Basically,
the point is to guard against API reentrancy across threads...not to
guard against ourselves.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
Cc: Brian Paul <brianp at vmware.com>
---
 src/mesa/main/shared.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c
index 0189dd2..7ef932f 100644
--- a/src/mesa/main/shared.c
+++ b/src/mesa/main/shared.c
@@ -113,7 +113,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_plain);
+   mtx_init(&shared->TexMutex, mtx_recursive);
    shared->TextureStateStamp = 0;
 
    shared->FrameBuffers = _mesa_NewHashTable();
-- 
2.0.0



More information about the mesa-dev mailing list