diff --git a/OptiScaler/fsr4/FSR4ModelSelection.cpp b/OptiScaler/fsr4/FSR4ModelSelection.cpp index 51c3a5a8..7bc0750b 100644 --- a/OptiScaler/fsr4/FSR4ModelSelection.cpp +++ b/OptiScaler/fsr4/FSR4ModelSelection.cpp @@ -58,13 +58,22 @@ void FSR4ModelSelection::Hook(HMODULE module, bool unhookOld) if (module == nullptr) return; - if (o_getModelBlob != nullptr && unhookOld) + if (unhookOld && (o_getModelBlob || o_createModel)) { DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); - DetourDetach(&(PVOID&) o_getModelBlob, hkgetModelBlob); - o_getModelBlob = nullptr; + if (o_getModelBlob != nullptr) + { + DetourDetach(&(PVOID&) o_getModelBlob, hkgetModelBlob); + o_getModelBlob = nullptr; + } + + if (o_createModel != nullptr) + { + DetourDetach(&(PVOID&) o_createModel, hkcreateModel); + o_createModel = nullptr; + } DetourTransactionCommit(); }