From d1a146ab01b999ad77a3b7b11a5e533f0e6f2faf Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Fri, 23 Oct 2026 02:27:01 +0200 Subject: [PATCH] Fix AL2 to AL2 conversion when using FSRFG Slopped. --- OptiScaler/low_latency/input/input_antilag2.cpp | 2 +- OptiScaler/low_latency/input/input_common.cpp | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/OptiScaler/low_latency/input/input_antilag2.cpp b/OptiScaler/low_latency/input/input_antilag2.cpp index 47f73de3..be3d6c66 100644 --- a/OptiScaler/low_latency/input/input_antilag2.cpp +++ b/OptiScaler/low_latency/input/input_antilag2.cpp @@ -29,7 +29,7 @@ HRESULT STDMETHODCALLTYPE AmdExtAntiLagApi::UpdateAntiLagState(VOID* pData) result = InputCommon::set_marker(inputContext, device, markerParams); - if (result != InputResult::Ok) + if (result != InputResult::Ok && result != InputResult::UsingDifferentInput) { LOG_ERROR("set_marker result: {}", magic_enum::enum_name(result)); return E_FAIL; diff --git a/OptiScaler/low_latency/input/input_common.cpp b/OptiScaler/low_latency/input/input_common.cpp index 07f8d4d7..85b535cd 100644 --- a/OptiScaler/low_latency/input/input_common.cpp +++ b/OptiScaler/low_latency/input/input_common.cpp @@ -1448,8 +1448,16 @@ void InputCommon::update() InputResult InputCommon::mark_present_start(IUnknown* pDevice) { - // TODO: could allow AL2 but need to check the InputMarkerMode of the active AL2 input - if (activeInput != LowLatencyInput::UeLowLatency) + auto fg = State::Instance().CurrentFG(); + bool fsrfgTypesFrames = + State::Instance().activeFgOutput == FGOutput::FSRFG && fg != nullptr && fg->IsActive() && !fg->IsPaused(); + + // UE only sends simulation markers + bool marksEnds = + activeInput == LowLatencyInput::UeLowLatency || (activeInput == LowLatencyInput::AntiLag2 && fsrfgTypesFrames && + !reports_frame_generation(LowLatencyInput::AntiLag2)); + + if (!marksEnds) return InputResult::InputNotSupported; // TODO: this is missing the frame id required by other outputs