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 \