From 553588194e4d6b3faa87a2746db210102062ff09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 7 Jun 2021 11:03:10 -0400 Subject: [PATCH] mesa: remove mutex locking from a glBindTexture early out path The locking doesn't seem to be needed. This removes large locking overhead. Reviewed-By: Mike Blumenkrantz Reviewed-by: Emma Anholt Part-of: --- src/mesa/main/texobj.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index b5b873b3ebd..400c85f653e 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -1608,16 +1608,10 @@ bind_texture_object(struct gl_context *ctx, unsigned unit, * If so, just return. For GL_OES_image_external, rebinding the texture * always must invalidate cached resources. */ - if (targetIndex != TEXTURE_EXTERNAL_INDEX) { - bool early_out; - simple_mtx_lock(&ctx->Shared->Mutex); - early_out = ((ctx->Shared->RefCount == 1) - && (texObj == texUnit->CurrentTex[targetIndex])); - simple_mtx_unlock(&ctx->Shared->Mutex); - if (early_out) { - return; - } - } + if (targetIndex != TEXTURE_EXTERNAL_INDEX && + ctx->Shared->RefCount == 1 && + texObj == texUnit->CurrentTex[targetIndex]) + return; /* Flush before changing binding. *