diff options
author | Danylo Piliaiev <[email protected]> | 2020-05-22 13:36:31 +0300 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-05-22 14:50:21 +0000 |
commit | 40255831230a6dba45b09ab98d5b626a5bdb18ef (patch) | |
tree | 669d5e87ae4f2c4834b19ae6947a712365627199 /src | |
parent | 0d2ec80dea8adf3089f187f8c0e9bdbcb135b4f2 (diff) |
mesa: Fix double-lock of Shared->FrameBuffers and usage of wrong mutex
Fixes: 7534c536ca0f4b2b123200f421460094034f37a3
Fixes: 8cfb3e4ee57070ff45e7534a986a20c5fd649dc7
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3024
Signed-off-by: Danylo Piliaiev <[email protected]>
Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5160>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/fbobject.c | 9 |
1 files changed, 1 insertions, 8 deletions
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 |