From 49596c31f3f4758543766e5f3196d763b3622bc8 Mon Sep 17 00:00:00 2001 From: light7734 Date: Wed, 8 Oct 2025 13:35:42 +0330 Subject: [PATCH] ci(amd64/clang/lsan): attempt to fix lsan --- .../renderer/private/backend/vk/context/instance.cpp | 12 ++++++++++-- tools/ci/amd64/clang/lsan.sh | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/renderer/private/backend/vk/context/instance.cpp b/modules/renderer/private/backend/vk/context/instance.cpp index df8c153..b63f871 100644 --- a/modules/renderer/private/backend/vk/context/instance.cpp +++ b/modules/renderer/private/backend/vk/context/instance.cpp @@ -231,8 +231,12 @@ void Instance::initialize_instance() void Instance::load_library() { - library = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL | RTLD_NODELETE); - ensure(library, "Failed to dlopen libvulkan.so"); + library = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL); + if(!library) + { + library = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL | RTLD_NODELETE); + } + ensure(library, "Failed to dlopen vulkan library"); // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) vk_get_instance_proc_address = reinterpret_cast( @@ -248,6 +252,10 @@ void Instance::unload_library() return; } + // calling dlclose causes many issues with runtime analyzers + // eg. https://github.com/google/sanitizers/issues/89 + // with no noticable gains, so we just don't bother closing it. + // dlclose(library); // library = nullptr; } diff --git a/tools/ci/amd64/clang/lsan.sh b/tools/ci/amd64/clang/lsan.sh index 72a29c1..5eb5409 100755 --- a/tools/ci/amd64/clang/lsan.sh +++ b/tools/ci/amd64/clang/lsan.sh @@ -14,7 +14,7 @@ cmake . \ -GNinja \ -DCMAKE_LINKER_TYPE=MOLD \ -DENABLE_UNIT_TESTS=ON \ --DCMAKE_BUILD_TYPE=Release \ +-DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_FLAGS=" \ -fsanitize=leak \ -g \