diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 92375a9361b..49893165250 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -85,7 +85,6 @@ static struct gl_framebuffer DummyFramebuffer = { .Delete = delete_dummy_framebuffer, }; static struct gl_renderbuffer DummyRenderbuffer = { - .Mutex = _SIMPLE_MTX_INITIALIZER_NP, .Delete = delete_dummy_renderbuffer, }; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 77bfdf7cda1..1a73f941fc9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -3491,7 +3491,6 @@ struct gl_shared_state */ struct gl_renderbuffer { - simple_mtx_t Mutex; /**< for thread safety */ GLuint ClassID; /**< Useful for drivers */ GLuint Name; GLchar *Label; /**< GL_KHR_debug */ diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c index 27c6d90fb9b..c2ce1cd7eec 100644 --- a/src/mesa/main/renderbuffer.c +++ b/src/mesa/main/renderbuffer.c @@ -41,8 +41,6 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name) { GET_CURRENT_CONTEXT(ctx); - simple_mtx_init(&rb->Mutex, mtx_plain); - rb->ClassID = 0; rb->Name = name; rb->RefCount = 1; @@ -102,7 +100,6 @@ _mesa_new_renderbuffer(struct gl_context *ctx, GLuint name) void _mesa_delete_renderbuffer(struct gl_context *ctx, struct gl_renderbuffer *rb) { - simple_mtx_destroy(&rb->Mutex); free(rb->Label); free(rb); } @@ -199,29 +196,20 @@ _mesa_reference_renderbuffer_(struct gl_renderbuffer **ptr, { if (*ptr) { /* Unreference the old renderbuffer */ - GLboolean deleteFlag = GL_FALSE; struct gl_renderbuffer *oldRb = *ptr; - simple_mtx_lock(&oldRb->Mutex); assert(oldRb->RefCount > 0); - oldRb->RefCount--; - deleteFlag = (oldRb->RefCount == 0); - simple_mtx_unlock(&oldRb->Mutex); - if (deleteFlag) { + if (p_atomic_dec_zero(&oldRb->RefCount)) { GET_CURRENT_CONTEXT(ctx); oldRb->Delete(ctx, oldRb); } - - *ptr = NULL; } - assert(!*ptr); if (rb) { /* reference new renderbuffer */ - simple_mtx_lock(&rb->Mutex); - rb->RefCount++; - simple_mtx_unlock(&rb->Mutex); - *ptr = rb; + p_atomic_inc(&rb->RefCount); } + + *ptr = rb; }