From b88d2be3a9dcf713f120bd179c883a3a33bed2a4 Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Thu, 13 Aug 2026 16:22:58 +0200 Subject: [PATCH] Make sure to enable XeLL before providing it to XeFG --- OptiScaler/framegen/xefg/XeFG_Dx12.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/OptiScaler/framegen/xefg/XeFG_Dx12.cpp b/OptiScaler/framegen/xefg/XeFG_Dx12.cpp index 8b16661f..c8db742c 100644 --- a/OptiScaler/framegen/xefg/XeFG_Dx12.cpp +++ b/OptiScaler/framegen/xefg/XeFG_Dx12.cpp @@ -71,6 +71,19 @@ bool XeFG_Dx12::CreateSwapchainContext(ID3D12Device* device) // Force fakenvapi to create XeLL for us if (fakenvapi::forceMode(device, LowLatencyMode::XeLL)) { + xell_sleep_params_t sleepParams = {}; + sleepParams.bLowLatencyMode = true; + sleepParams.bLowLatencyBoost = false; + sleepParams.minimumIntervalUs = 0; + + auto xellResult = + XeLLProxy::SetSleepMode()((xell_context_handle_t) fakenvapi::getCurrentContext(), &sleepParams); + if (xellResult != XELL_RESULT_SUCCESS) + { + LOG_ERROR("SetSleepMode error: {} ({})", magic_enum::enum_name(xellResult), (UINT) xellResult); + return false; + } + result = XeFGProxy::SetLatencyReduction()(_swapChainContext, fakenvapi::getCurrentContext()); if (result != XEFG_SWAPCHAIN_RESULT_SUCCESS)