From 8feb5d0ca2037e95ca8846d02fd6569e92cd2f06 Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Sun, 25 Oct 2026 15:07:46 +0100 Subject: [PATCH] Fix FSRFG version switching when FG is not active Slopped. --- OptiScaler/framegen/ffx/FSRFG_Dx12.cpp | 4 ++++ OptiScaler/framegen/ffx/FSRFG_Vk.cpp | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/OptiScaler/framegen/ffx/FSRFG_Dx12.cpp b/OptiScaler/framegen/ffx/FSRFG_Dx12.cpp index 6d06a816..f9278e04 100644 --- a/OptiScaler/framegen/ffx/FSRFG_Dx12.cpp +++ b/OptiScaler/framegen/ffx/FSRFG_Dx12.cpp @@ -1553,6 +1553,10 @@ void FSRFG_Dx12::EvaluateState(ID3D12Device* device, FG_Constants& fgConstants) Hudfix_Dx11::ResetCounters(); } + // The change flags are cleared below, so a pending recreation (e.g. FFX FG version) must happen now + if (State::Instance().scChanged) + DestroyFGContext(); + ReleaseResourceCopies(); } diff --git a/OptiScaler/framegen/ffx/FSRFG_Vk.cpp b/OptiScaler/framegen/ffx/FSRFG_Vk.cpp index bc0222d9..15d97798 100644 --- a/OptiScaler/framegen/ffx/FSRFG_Vk.cpp +++ b/OptiScaler/framegen/ffx/FSRFG_Vk.cpp @@ -691,9 +691,14 @@ void FSRFG_Vk::EvaluateState(FG_Constants& fgConstants) DestroyFGContext(); } } - else if (IsActive()) + else { - Deactivate(); + if (IsActive()) + Deactivate(); + + // The change flags are cleared below, so a pending recreation (e.g. FFX FG version) must happen now + if (state.scChanged) + DestroyFGContext(); } if (state.fgChanged)