diff --git a/OptiScaler/dllmain.cpp b/OptiScaler/dllmain.cpp index 12a4a145..e327873e 100644 --- a/OptiScaler/dllmain.cpp +++ b/OptiScaler/dllmain.cpp @@ -1213,6 +1213,9 @@ static void printQuirks(flag_set& quirks) if (quirks & GameQuirk::DoNotPreserveFGSwapChain) stringQuirks.push_back("Don't Preserve FG Swapchain"); + if (quirks & GameQuirk::DoNotSkipResize) + stringQuirks.push_back("Don't Skip Resize"); + if (quirks & GameQuirk::OldOverlayMenu) stringQuirks.push_back("Using old overlay (draws on upscaled image)"); @@ -1387,6 +1390,11 @@ static void CheckQuirks(bool isNvidia) Config::Instance()->FGPreserveSwapChain.set_volatile_value(false); } + if (quirks & GameQuirk::DoNotSkipResize && !Config::Instance()->FGSkipResizeBuffers.has_value()) + { + Config::Instance()->FGSkipResizeBuffers.set_volatile_value(false); + } + if (quirks & GameQuirk::OldOverlayMenu && !Config::Instance()->OverlayMenu.has_value()) { Config::Instance()->OverlayMenu.set_volatile_value(false); diff --git a/OptiScaler/misc/Quirks.h b/OptiScaler/misc/Quirks.h index 7a913a3a..8c057334 100644 --- a/OptiScaler/misc/Quirks.h +++ b/OptiScaler/misc/Quirks.h @@ -40,6 +40,7 @@ enum class GameQuirk : uint64_t SpoofRegistry, DisableFakenvapi, DoNotPreserveFGSwapChain, + DoNotSkipResize, OldOverlayMenu, // Quirks that are applied deeper in code @@ -187,6 +188,9 @@ static const QuirkEntry quirkTable[] = { // Duet Night Abyss QUIRK_ENTRY("em-win64-shipping.exe", GameQuirk::DontUseNtDllHooks), + // The Talos Principle 2 + QUIRK_ENTRY("talos2-win64-shipping.exe", GameQuirk::DoNotPreserveFGSwapChain, GameQuirk::DoNotSkipResize), + // The Callisto Protocol // FSR2 only, no spoof needed QUIRK_ENTRY_UE(thecallistoprotocol, GameQuirk::DisableUseFsrInputValues, GameQuirk::DisableDxgiSpoofing,