diff --git a/src/D3D12Hook.cpp b/src/D3D12Hook.cpp index f4a839ca..f2b49fd2 100644 --- a/src/D3D12Hook.cpp +++ b/src/D3D12Hook.cpp @@ -50,7 +50,11 @@ void D3D12Hook::hook_streamline(HMODULE dlssg_module) try { return; } - std::scoped_lock _{g_framework->get_hook_monitor_mutex()}; + std::scoped_lock _{D3D12Hook::s_streamline.hook_mutex}; + + if (D3D12Hook::s_streamline.setup) { + return; + } spdlog::info("[Streamline] Hooking Streamline"); diff --git a/src/D3D12Hook.hpp b/src/D3D12Hook.hpp index 6f0c815b..a115df46 100644 --- a/src/D3D12Hook.hpp +++ b/src/D3D12Hook.hpp @@ -130,6 +130,7 @@ class D3D12Hook static void* link_swapchain_to_cmd_queue(void* rcx, void* rdx, void* r8, void* r9); std::unique_ptr link_swapchain_to_cmd_queue_hook{}; + std::mutex hook_mutex{}; bool setup{ false }; }; diff --git a/src/REFramework.cpp b/src/REFramework.cpp index 1cbfa6ba..7e4472c4 100644 --- a/src/REFramework.cpp +++ b/src/REFramework.cpp @@ -200,7 +200,7 @@ try { std::wstring base_dll_name = NotificationData->Loaded.BaseDllName->Buffer; spdlog::info("LdrRegisterDllNotification: Loaded: {}", utility::narrow(base_dll_name)); - if (std::wstring_view{base_dll_name}.find(L"sl.dlss_g.dll") != std::wstring_view::npos) { + if (base_dll_name.find(L"sl.dlss_g.dll") != std::wstring::npos) { spdlog::info("LdrRegisterDllNotification: Detected DLSS DLL loaded"); D3D12Hook::hook_streamline((HMODULE)NotificationData->Loaded.DllBase);