diff --git a/.pick_status.json b/.pick_status.json index 464c41da2dc..0a5c899bcfc 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1363,7 +1363,7 @@ "description": "mesa: Fix double-lock of Shared->FrameBuffers and usage of wrong mutex", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "7534c536ca0f4b2b123200f421460094034f37a3" }, diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 3d35b9bdc33..298a6b35d0a 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -174,21 +174,16 @@ _mesa_lookup_framebuffer_dsa(struct gl_context *ctx, GLuint id, /* Name exists but buffer is not initialized */ if (fb == &DummyFramebuffer) { fb = ctx->Driver.NewFramebuffer(ctx, id); - _mesa_HashLockMutex(ctx->Shared->FrameBuffers); _mesa_HashInsert(ctx->Shared->FrameBuffers, id, fb); - _mesa_HashUnlockMutex(ctx->Shared->BufferObjects); } /* Name doesn't exist */ else if (!fb) { - _mesa_HashLockMutex(ctx->Shared->FrameBuffers); fb = ctx->Driver.NewFramebuffer(ctx, id); if (!fb) { - _mesa_HashUnlockMutex(ctx->Shared->FrameBuffers); _mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", func); return NULL; } - _mesa_HashInsertLocked(ctx->Shared->BufferObjects, id, fb); - _mesa_HashUnlockMutex(ctx->Shared->BufferObjects); + _mesa_HashInsert(ctx->Shared->FrameBuffers, id, fb); } return fb; } @@ -4764,9 +4759,7 @@ lookup_named_framebuffer_ext_dsa(struct gl_context *ctx, GLuint framebuffer, con /* Then, make sure it's initialized */ if (fb == &DummyFramebuffer) { fb = ctx->Driver.NewFramebuffer(ctx, framebuffer); - _mesa_HashLockMutex(ctx->Shared->FrameBuffers); _mesa_HashInsert(ctx->Shared->FrameBuffers, framebuffer, fb); - _mesa_HashUnlockMutex(ctx->Shared->BufferObjects); } } else