From 8b54b536240cee308a85298a6fa51ef3cdbcf504 Mon Sep 17 00:00:00 2001 From: cdozdil Date: Wed, 17 Jul 2024 09:52:07 +0300 Subject: [PATCH] when loading dll check system32 too --- OptiScaler/NVNGX_Proxy.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/OptiScaler/NVNGX_Proxy.h b/OptiScaler/NVNGX_Proxy.h index aa8222f4..38ac84ab 100644 --- a/OptiScaler/NVNGX_Proxy.h +++ b/OptiScaler/NVNGX_Proxy.h @@ -363,7 +363,7 @@ public: break; } - // From ini + // From nvngx.ini path if (Config::Instance()->DLSSLibrary.has_value()) { spdlog::info("NVNGXProxy::InitNVNGX trying to load nvngx from ini path!"); @@ -413,6 +413,28 @@ public: if (_dll) spdlog::info("NVNGXProxy::InitNVNGX nvngx.dll loaded from {0}, ptr: {1:X}", nvngxPath.string(), (ULONG64)_dll); + // From System32 + wchar_t sysFolder[MAX_PATH]; + GetSystemDirectory(sysFolder, MAX_PATH); + std::filesystem::path sysPath(sysFolder); + + auto nvngxPath = sysPath / "_nvngx.dll"; + spdlog::info("NVNGXProxy::InitNVNGX trying to load _nvngx.dll path: {0}", nvngxPath.string()); + + _dll = LoadLibraryW(nvngxPath.wstring().c_str()); + if (_dll) + { + spdlog::info("NVNGXProxy::InitNVNGX _nvngx.dll loaded from {0}, ptr: {1:X}", nvngxPath.string(), (ULONG64)_dll); + break; + } + + nvngxPath = sysPath / "nvngx.dll"; + spdlog::info("NVNGXProxy::InitNVNGX trying to load nvngx.dll path: {0}", nvngxPath.string()); + + _dll = LoadLibraryW(nvngxPath.wstring().c_str()); + if (_dll) + spdlog::info("NVNGXProxy::InitNVNGX nvngx.dll loaded from {0}, ptr: {1:X}", nvngxPath.string(), (ULONG64)_dll); + } while (false); if (_dll != nullptr)