Avoid manually loading amdxc64 early

This commit is contained in:
FakeMichau
2026-05-31 20:56:48 +02:00
parent bcd5b644e4
commit 8e20ba2358
3 changed files with 16 additions and 2 deletions
+1
View File
@@ -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");
+4 -2
View File
@@ -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)
{
+11
View File
@@ -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)