mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-08-25 07:36:45 +00:00
Avoid manually loading amdxc64 early
This commit is contained in:
@@ -139,6 +139,7 @@ DEFINE_NAME_VECTORS(fsr2BE, "ffx_fsr2_api_dx12_x64");
|
||||
DEFINE_NAME_VECTORS(fsr3, "ffx_fsr3upscaler_x64");
|
||||
DEFINE_NAME_VECTORS(fsr3BE, "ffx_backend_dx12_x64");
|
||||
|
||||
DEFINE_NAME_VECTORS(amdxc64, "amdxc64");
|
||||
DEFINE_NAME_VECTORS(ffxDx12, "amd_fidelityfx_dx12", "amd_fidelityfx_loader_dx12");
|
||||
DEFINE_NAME_VECTORS(ffxDx12Upscaler, "amd_fidelityfx_upscaler_dx12");
|
||||
DEFINE_NAME_VECTORS(ffxDx12FG, "amd_fidelityfx_framegeneration_dx12");
|
||||
|
||||
@@ -490,8 +490,10 @@ void InitFSR4Update()
|
||||
|
||||
// For FSR4 Upgrade
|
||||
moduleAmdxc64 = KernelBaseProxy::GetModuleHandleW_()(L"amdxc64.dll");
|
||||
if (moduleAmdxc64 == nullptr)
|
||||
moduleAmdxc64 = NtdllProxy::LoadLibraryExW_Ldr(L"amdxc64.dll", NULL, 0);
|
||||
|
||||
// 007 First Light acts weird when it's loaded early
|
||||
// if (moduleAmdxc64 == nullptr)
|
||||
// moduleAmdxc64 = NtdllProxy::LoadLibraryExW_Ldr(L"amdxc64.dll", NULL, 0);
|
||||
|
||||
if (moduleAmdxc64 != nullptr)
|
||||
{
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <hooks/Streamline_Hooks.h>
|
||||
|
||||
#include <fsr4/FSR4ModelSelection.h>
|
||||
#include <fsr4/FSR4Upgrade.h>
|
||||
|
||||
// #define LOG_LIB_OPERATIONS
|
||||
|
||||
@@ -470,6 +471,16 @@ HMODULE LibraryLoadHooks::LoadLibraryCheckW(std::wstring libName, LPCWSTR lpLibF
|
||||
return module;
|
||||
}
|
||||
|
||||
if (CheckDllNameW(&libName, &amdxc64NamesW))
|
||||
{
|
||||
auto module = NtdllProxy::LoadLibraryExW_Ldr(libName.c_str(), NULL, 0);
|
||||
|
||||
if (module != nullptr)
|
||||
InitFSR4Update();
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
if (CheckDllNameW(&libName, &ffxDx12NamesW))
|
||||
{
|
||||
if (FfxApiProxy::Dx12Module() != nullptr)
|
||||
|
||||
Reference in New Issue
Block a user