avutil/vulkan_glslang: use AVMutex instead of pthread_mutex_t

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
This commit is contained in:
Kacper Michajłow
2025-10-27 11:54:02 +01:00
parent 68152978b5
commit 4deb8b3a7a
+6 -7
View File
@@ -16,16 +16,15 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <pthread.h>
#include <glslang/build_info.h>
#include <glslang/Include/glslang_c_interface.h>
#include "vulkan_spirv.h"
#include "libavutil/mem.h"
#include "libavutil/avassert.h"
#include "libavutil/thread.h"
static pthread_mutex_t glslc_mutex = PTHREAD_MUTEX_INITIALIZER;
static AVMutex glslc_mutex = AV_MUTEX_INITIALIZER;
static int glslc_refcount = 0;
static const glslang_resource_t glslc_resource_limits = {
@@ -277,10 +276,10 @@ static void glslc_uninit(FFVkSPIRVCompiler **ctx)
if (!ctx || !*ctx)
return;
pthread_mutex_lock(&glslc_mutex);
ff_mutex_lock(&glslc_mutex);
if (glslc_refcount && (--glslc_refcount == 0))
glslang_finalize_process();
pthread_mutex_unlock(&glslc_mutex);
ff_mutex_unlock(&glslc_mutex);
av_freep(ctx);
}
@@ -295,14 +294,14 @@ FFVkSPIRVCompiler *ff_vk_glslang_init(void)
ret->free_shader = glslc_shader_free;
ret->uninit = glslc_uninit;
pthread_mutex_lock(&glslc_mutex);
ff_mutex_lock(&glslc_mutex);
if (!glslc_refcount++) {
if (!glslang_initialize_process()) {
av_freep(&ret);
glslc_refcount--;
}
}
pthread_mutex_unlock(&glslc_mutex);
ff_mutex_unlock(&glslc_mutex);
return ret;
}