From 6fb623bb966983de3cda73e7b966466e260efeda Mon Sep 17 00:00:00 2001 From: nitec <35529761+cdozdil@users.noreply.github.com> Date: Sun, 16 Nov 2025 11:50:44 +0300 Subject: [PATCH 1/5] Re-enabled INVERTED_DEPTH flags for XeFG --- OptiScaler/framegen/xefg/XeFG_Dx12.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/OptiScaler/framegen/xefg/XeFG_Dx12.cpp b/OptiScaler/framegen/xefg/XeFG_Dx12.cpp index c260aaf6..a5ffb3b9 100644 --- a/OptiScaler/framegen/xefg/XeFG_Dx12.cpp +++ b/OptiScaler/framegen/xefg/XeFG_Dx12.cpp @@ -261,9 +261,8 @@ bool XeFG_Dx12::CreateSwapchain(IDXGIFactory* factory, ID3D12CommandQueue* cmdQu params.initFlags = XEFG_SWAPCHAIN_INIT_FLAG_NONE; - // if (State::Instance().activeFgInput != FGInput::Upscaler && - // Config::Instance()->FGXeFGDepthInverted.value_or_default()) - // params.initFlags |= XEFG_SWAPCHAIN_INIT_FLAG_INVERTED_DEPTH; + if (Config::Instance()->FGXeFGDepthInverted.value_or_default()) + params.initFlags |= XEFG_SWAPCHAIN_INIT_FLAG_INVERTED_DEPTH; if (Config::Instance()->FGXeFGJitteredMV.value_or_default()) params.initFlags |= XEFG_SWAPCHAIN_INIT_FLAG_JITTERED_MV; @@ -360,9 +359,8 @@ bool XeFG_Dx12::CreateSwapchain1(IDXGIFactory* factory, ID3D12CommandQueue* cmdQ params.initFlags = XEFG_SWAPCHAIN_INIT_FLAG_NONE; - // if (State::Instance().activeFgInput != FGInput::Upscaler && - // Config::Instance()->FGXeFGDepthInverted.value_or_default()) - // params.initFlags |= XEFG_SWAPCHAIN_INIT_FLAG_INVERTED_DEPTH; + if (Config::Instance()->FGXeFGDepthInverted.value_or_default()) + params.initFlags |= XEFG_SWAPCHAIN_INIT_FLAG_INVERTED_DEPTH; if (Config::Instance()->FGXeFGJitteredMV.value_or_default()) params.initFlags |= XEFG_SWAPCHAIN_INIT_FLAG_JITTERED_MV; From 39486400d02c5837cb227a08c31d6f3f4d82b857 Mon Sep 17 00:00:00 2001 From: TheRazerMD Date: Mon, 17 Nov 2025 13:37:32 +0100 Subject: [PATCH 2/5] Added MechWarrior 5 Mercenaries quirk * ForceUnrealEngine --- OptiScaler/misc/Quirks.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OptiScaler/misc/Quirks.h b/OptiScaler/misc/Quirks.h index e79f7d5f..35161a10 100644 --- a/OptiScaler/misc/Quirks.h +++ b/OptiScaler/misc/Quirks.h @@ -239,7 +239,7 @@ static const QuirkEntry quirkTable[] = { // Self-explanatory // // The Persistence, Split Fiction, Minecraft Bedrock, Ghostwire: Tokyo, RoadCraft, STAR WARS Jedi: - // Survivor, FINAL FANTASY VII REBIRTH, Witchfire + // Survivor, FINAL FANTASY VII REBIRTH, Witchfire, MechWarrior 5: Mercenaries QUIRK_ENTRY_UE(persistence, GameQuirk::ForceUnrealEngine), QUIRK_ENTRY("splitfiction.exe", GameQuirk::FastFeatureReset), QUIRK_ENTRY("minecraft.windows.exe", GameQuirk::KernelBaseHooks), @@ -248,6 +248,7 @@ static const QuirkEntry quirkTable[] = { QUIRK_ENTRY("jedisurvivor.exe", GameQuirk::ForceAutoExposure), QUIRK_ENTRY("ff7rebirth_.exe", GameQuirk::ForceUnrealEngine), QUIRK_ENTRY_UE(witchfire, GameQuirk::DisableUseFsrInputValues), + QUIRK_ENTRY_UE(mechwarrior, GameQuirk::ForceUnrealEngine), // VULKAN // ------ From 2a3d7cbd42b5b8792701e3a936fdb94d7ec029ea Mon Sep 17 00:00:00 2001 From: TheRazerMD Date: Sat, 22 Nov 2025 11:43:39 +0100 Subject: [PATCH 3/5] Added Where Winds Meet quirk * DisableDxgiSpoofing --- OptiScaler/misc/Quirks.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OptiScaler/misc/Quirks.h b/OptiScaler/misc/Quirks.h index 35161a10..32e81e1e 100644 --- a/OptiScaler/misc/Quirks.h +++ b/OptiScaler/misc/Quirks.h @@ -168,7 +168,8 @@ static const QuirkEntry quirkTable[] = { // Sackboy: A Big Adventure, Hellblade: Senua's Sacrifice, Pumpkin Jack, Metro Exodus Enhanced Edition, Rise of the // Ronin, DYNASTY WARRIORS: ORIGINS, Crysis Remastered, Crysis 2 Remastered, Mortal Shell, Sekiro: Shadows Die // Twice (for SekiroTSR mod), The Medium, NINJA GAIDEN 4 (+ WinGDK), Dead Space Remake, God of War (2018), Europa - // Universalis V, Need for Speed Unbound, Nioh 2 – The Complete Edition, Control Ultimate Edition, Deathloop + // Universalis V, Need for Speed Unbound, Nioh 2 – The Complete Edition, Control Ultimate Edition, Deathloop, Where + // Winds Meet QUIRK_ENTRY("witcher3.exe", GameQuirk::DisableDxgiSpoofing), QUIRK_ENTRY("alanwake2.exe", GameQuirk::DisableDxgiSpoofing), QUIRK_ENTRY("crysis3remastered.exe", GameQuirk::DisableDxgiSpoofing), @@ -201,6 +202,7 @@ static const QuirkEntry quirkTable[] = { QUIRK_ENTRY("nioh2.exe", GameQuirk::DisableDxgiSpoofing, GameQuirk::ForceAutoExposure), QUIRK_ENTRY("control_dx12.exe", GameQuirk::DisableDxgiSpoofing, GameQuirk::ForceAutoExposure), QUIRK_ENTRY("deathloop.exe", GameQuirk::DisableDxgiSpoofing), + QUIRK_ENTRY("wwm.exe", GameQuirk::DisableDxgiSpoofing), // FSR2 only, no spoof needed // From 5478b4d8d29ca379dcea6fad31f10275007b42ec Mon Sep 17 00:00:00 2001 From: TheRazerMD Date: Mon, 24 Nov 2025 14:30:53 +0100 Subject: [PATCH 4/5] Added Ghostrunner 1 and 2 quirk * ForceUnrealEngine --- OptiScaler/misc/Quirks.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OptiScaler/misc/Quirks.h b/OptiScaler/misc/Quirks.h index 32e81e1e..3f593a1f 100644 --- a/OptiScaler/misc/Quirks.h +++ b/OptiScaler/misc/Quirks.h @@ -251,6 +251,8 @@ static const QuirkEntry quirkTable[] = { QUIRK_ENTRY("ff7rebirth_.exe", GameQuirk::ForceUnrealEngine), QUIRK_ENTRY_UE(witchfire, GameQuirk::DisableUseFsrInputValues), QUIRK_ENTRY_UE(mechwarrior, GameQuirk::ForceUnrealEngine), + QUIRK_ENTRY_UE(ghostrunner, GameQuirk::ForceUnrealEngine), + QUIRK_ENTRY_UE(ghostrunner2, GameQuirk::ForceUnrealEngine), // VULKAN // ------ From 405a5cd258bc0395751d9f89647bace55c7f7fa5 Mon Sep 17 00:00:00 2001 From: TheRazerMD Date: Mon, 24 Nov 2025 14:40:03 +0100 Subject: [PATCH 5/5] Some INI changes --- OptiScaler.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OptiScaler.ini b/OptiScaler.ini index 7fa4159f..312d591f 100644 --- a/OptiScaler.ini +++ b/OptiScaler.ini @@ -755,7 +755,7 @@ Path=auto LoadAsiPlugins=auto ; Loads SpecialK64.dll from game's exe folder -; Please put a SpecialK.dxgi file next to SpecialK64.dll +; Please create an empty SpecialK.dxgi file next to SpecialK64.dll ; to set SpecialK's working mode, otherwise it will not be activated ; BECAUSE OF STABILITY ISSUES, WILL NOT BE LOADED WHEN OPTIFG IS ENABLED ; true or false - Default (auto) is false @@ -1146,9 +1146,9 @@ RestoreGraphicSignature=auto UsePrecompiledShaders=auto ; Color texture resource state to fix for rainbow colors on AMD cards (for mostly UE games) -; For UE engine games on AMD, set it to 4 (D3D12_RESOURCE_STATE_RENDER_TARGET) +; For UE engine games on AMD, set Color to 4 (D3D12_RESOURCE_STATE_RENDER_TARGET) ColorResourceBarrier=auto -; For UE engine games on AMD, set it to 8 (D3D12_RESOURCE_STATE_UNORDERED_ACCESS) +; For UE engine games on AMD, set MotionVector to 8 (D3D12_RESOURCE_STATE_UNORDERED_ACCESS) MotionVectorResourceBarrier=auto DepthResourceBarrier=auto ColorMaskResourceBarrier=auto