diff --git a/modules/renderer/private/backend/vk/context/instance.cpp b/modules/renderer/private/backend/vk/context/instance.cpp index bffd4b0..9211180 100644 --- a/modules/renderer/private/backend/vk/context/instance.cpp +++ b/modules/renderer/private/backend/vk/context/instance.cpp @@ -231,10 +231,11 @@ void Instance::initialize_instance() void Instance::load_library() { - library = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); + constexpr auto runtime_loader_flags = RTLD_NOW | RTLD_DEEPBIND | RTLD_LOCAL | RTLD_NODELETE; + library = dlopen("libvulkan.so.1", runtime_loader_flags); if (!library) { - library = dlopen("libvulkan.so", RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE); + library = dlopen("libvulkan.so", runtime_loader_flags); } ensure(library, "Failed to dlopen vulkan library"); @@ -256,8 +257,8 @@ void Instance::unload_library() // eg. https://github.com/google/sanitizers/issues/89 // with no noticable gains, so we just don't bother closing it. - dlclose(library); - library = nullptr; + // dlclose(library); + // library = nullptr; } void Instance::load_global_functions()