From a22c48a75a795fc0205bc367985fa52b24b30190 Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Wed, 25 Sep 2024 23:48:00 +0200 Subject: [PATCH] Try to improve LFX --- OptiScaler/nvapi/fakenvapi/fakenvapi.cpp | 3 +++ OptiScaler/nvapi/fakenvapi/lowlatency.h | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp b/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp index 47a4d5fb..6e348eb0 100644 --- a/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp +++ b/OptiScaler/nvapi/fakenvapi/fakenvapi.cpp @@ -353,6 +353,9 @@ namespace nvd { case PRESENT_START: lowlatency_ctx.mark_end_of_rendering(); break; + case RENDERSUBMIT_END: + lowlatency_ctx.lfx_end_frame(); + break; } return OK(); } diff --git a/OptiScaler/nvapi/fakenvapi/lowlatency.h b/OptiScaler/nvapi/fakenvapi/lowlatency.h index 59348c9e..6b77d84d 100644 --- a/OptiScaler/nvapi/fakenvapi/lowlatency.h +++ b/OptiScaler/nvapi/fakenvapi/lowlatency.h @@ -212,8 +212,6 @@ public: // Set FPS Limiter lfx_ctx->target_frame_time = 1000 * min_interval_us; - lfx_ctx->EndFrame(lfx_stats.frame_id, current_timestamp, &lfx_stats.latency, &lfx_stats.frame_time); - spdlog::debug("LFX latency: {}, frame_time: {}, current_timestamp: {}", lfx_stats.latency, lfx_stats.frame_time, current_timestamp); lfx_stats.frame_id++; lfx_stats.target = lfx_ctx->GetWaitTarget(lfx_stats.frame_id); @@ -257,6 +255,14 @@ public: return S_FALSE; } + inline void lfx_end_frame() { + lfx_mutex.lock(); + auto current_timestamp = get_timestamp(); + lfx_ctx->EndFrame(lfx_stats.frame_id, current_timestamp, &lfx_stats.latency, &lfx_stats.frame_time); + spdlog::debug("LFX latency: {}, frame_time: {}, current_timestamp: {}", lfx_stats.latency, lfx_stats.frame_time, current_timestamp); + lfx_mutex.unlock(); + } + inline void unload() { #if _MSC_VER && _WIN64 if (al2_dx12_ctx.m_pAntiLagAPI && !AMD::AntiLag2DX12::DeInitialize(&al2_dx12_ctx))