From 22a68f1a3d95e84891884b92bd0001358fd6036b Mon Sep 17 00:00:00 2001 From: FakeMichau <49685661+FakeMichau@users.noreply.github.com> Date: Mon, 1 Sep 2025 23:02:02 +0200 Subject: [PATCH] Clean up frame time calculations --- .../inputs/FG/Streamline_Inputs_Dx12.cpp | 2 ++ OptiScaler/upscalers/IFeature.h | 1 + OptiScaler/upscalers/fsr2/FSR2Feature.cpp | 22 +----------------- OptiScaler/upscalers/fsr2/FSR2Feature.h | 3 +-- .../upscalers/fsr2_212/FSR2Feature_212.cpp | 22 +----------------- .../upscalers/fsr2_212/FSR2Feature_212.h | 3 +-- OptiScaler/upscalers/fsr31/FSR31Feature.cpp | 23 ++++--------------- OptiScaler/upscalers/fsr31/FSR31Feature.h | 7 +----- 8 files changed, 13 insertions(+), 70 deletions(-) diff --git a/OptiScaler/inputs/FG/Streamline_Inputs_Dx12.cpp b/OptiScaler/inputs/FG/Streamline_Inputs_Dx12.cpp index 5cb2db0b..4b2ecf0b 100644 --- a/OptiScaler/inputs/FG/Streamline_Inputs_Dx12.cpp +++ b/OptiScaler/inputs/FG/Streamline_Inputs_Dx12.cpp @@ -484,6 +484,8 @@ bool Sl_Inputs_Dx12::dispatchFG() fgOutput->SetReset(slConstsRef.reset == sl::Boolean::eTrue); + fgOutput->SetFrameTimeDelta(State::Instance().lastFrameTime); + fgOutput->SetInterpolationRect(interpolationWidth, interpolationHeight); interpolationWidth = 0; interpolationHeight = 0; diff --git a/OptiScaler/upscalers/IFeature.h b/OptiScaler/upscalers/IFeature.h index 8059c80a..ad8b628e 100644 --- a/OptiScaler/upscalers/IFeature.h +++ b/OptiScaler/upscalers/IFeature.h @@ -5,6 +5,7 @@ #include #include +#include #define DLSS_MOD_ID_OFFSET 1000000 diff --git a/OptiScaler/upscalers/fsr2/FSR2Feature.cpp b/OptiScaler/upscalers/fsr2/FSR2Feature.cpp index 20818672..4988c25b 100644 --- a/OptiScaler/upscalers/fsr2/FSR2Feature.cpp +++ b/OptiScaler/upscalers/fsr2/FSR2Feature.cpp @@ -5,32 +5,12 @@ double FSR2Feature::GetDeltaTime() { - double currentTime = MillisecondsNow(); + double currentTime = Util::MillisecondsNow(); double deltaTime = (currentTime - _lastFrameTime); _lastFrameTime = currentTime; return deltaTime; } -double FSR2Feature::MillisecondsNow() -{ - static LARGE_INTEGER s_frequency; - static BOOL s_use_qpc = QueryPerformanceFrequency(&s_frequency); - double milliseconds = 0; - - if (s_use_qpc) - { - LARGE_INTEGER now; - QueryPerformanceCounter(&now); - milliseconds = double(1000.0 * now.QuadPart) / s_frequency.QuadPart; - } - else - { - milliseconds = double(GetTickCount64()); - } - - return milliseconds; -} - FSR2Feature::~FSR2Feature() { if (!IsInited()) diff --git a/OptiScaler/upscalers/fsr2/FSR2Feature.h b/OptiScaler/upscalers/fsr2/FSR2Feature.h index 158814fd..85af05e3 100644 --- a/OptiScaler/upscalers/fsr2/FSR2Feature.h +++ b/OptiScaler/upscalers/fsr2/FSR2Feature.h @@ -70,7 +70,6 @@ class FSR2Feature : public virtual IFeature virtual bool InitFSR2(const NVSDK_NGX_Parameter* InParameters) = 0; - double MillisecondsNow(); double GetDeltaTime(); public: @@ -81,7 +80,7 @@ class FSR2Feature : public virtual IFeature { _initParameters = SetInitParameters(InParameters); _moduleLoaded = true; - _lastFrameTime = MillisecondsNow(); + _lastFrameTime = Util::MillisecondsNow(); } ~FSR2Feature(); diff --git a/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.cpp b/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.cpp index 58134c47..9c3ef555 100644 --- a/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.cpp +++ b/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.cpp @@ -4,32 +4,12 @@ double FSR2Feature212::GetDeltaTime() { - double currentTime = MillisecondsNow(); + double currentTime = Util::MillisecondsNow(); double deltaTime = (currentTime - _lastFrameTime); _lastFrameTime = currentTime; return deltaTime; } -double FSR2Feature212::MillisecondsNow() -{ - static LARGE_INTEGER s_frequency; - static BOOL s_use_qpc = QueryPerformanceFrequency(&s_frequency); - double milliseconds = 0; - - if (s_use_qpc) - { - LARGE_INTEGER now; - QueryPerformanceCounter(&now); - milliseconds = double(1000.0 * now.QuadPart) / s_frequency.QuadPart; - } - else - { - milliseconds = double(GetTickCount64()); - } - - return milliseconds; -} - FSR2Feature212::~FSR2Feature212() { if (!IsInited()) diff --git a/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.h b/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.h index 52306738..285f2c09 100644 --- a/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.h +++ b/OptiScaler/upscalers/fsr2_212/FSR2Feature_212.h @@ -58,7 +58,6 @@ class FSR2Feature212 : public virtual IFeature virtual bool InitFSR2(const NVSDK_NGX_Parameter* InParameters) = 0; - double MillisecondsNow(); double GetDeltaTime(); public: @@ -69,7 +68,7 @@ class FSR2Feature212 : public virtual IFeature { _initParameters = SetInitParameters(InParameters); _moduleLoaded = true; - _lastFrameTime = MillisecondsNow(); + _lastFrameTime = Util::MillisecondsNow(); } ~FSR2Feature212(); diff --git a/OptiScaler/upscalers/fsr31/FSR31Feature.cpp b/OptiScaler/upscalers/fsr31/FSR31Feature.cpp index e9160719..84e436af 100644 --- a/OptiScaler/upscalers/fsr31/FSR31Feature.cpp +++ b/OptiScaler/upscalers/fsr31/FSR31Feature.cpp @@ -4,30 +4,17 @@ double FSR31Feature::GetDeltaTime() { - double currentTime = MillisecondsNow(); + double currentTime = Util::MillisecondsNow(); double deltaTime = (currentTime - _lastFrameTime); _lastFrameTime = currentTime; return deltaTime; } -double FSR31Feature::MillisecondsNow() +FSR31Feature::FSR31Feature(unsigned int InHandleId, NVSDK_NGX_Parameter* InParameters) + : IFeature(InHandleId, InParameters) { - static LARGE_INTEGER s_frequency; - static BOOL s_use_qpc = QueryPerformanceFrequency(&s_frequency); - double milliseconds = 0; - - if (s_use_qpc) - { - LARGE_INTEGER now; - QueryPerformanceCounter(&now); - milliseconds = double(1000.0 * now.QuadPart) / s_frequency.QuadPart; - } - else - { - milliseconds = double(GetTickCount64()); - } - - return milliseconds; + _initParameters = SetInitParameters(InParameters); + _lastFrameTime = Util::MillisecondsNow(); } FSR31Feature::~FSR31Feature() diff --git a/OptiScaler/upscalers/fsr31/FSR31Feature.h b/OptiScaler/upscalers/fsr31/FSR31Feature.h index f6037813..38d509d8 100644 --- a/OptiScaler/upscalers/fsr31/FSR31Feature.h +++ b/OptiScaler/upscalers/fsr31/FSR31Feature.h @@ -26,7 +26,6 @@ class FSR31Feature : public virtual IFeature virtual bool InitFSR3(const NVSDK_NGX_Parameter* InParameters) = 0; - double MillisecondsNow(); double GetDeltaTime(); static inline void parse_version(const char* version_str) @@ -99,11 +98,7 @@ class FSR31Feature : public virtual IFeature feature_version Version() final { return _version; } std::string Name() const { return _name.c_str(); } - FSR31Feature(unsigned int InHandleId, NVSDK_NGX_Parameter* InParameters) : IFeature(InHandleId, InParameters) - { - _initParameters = SetInitParameters(InParameters); - _lastFrameTime = MillisecondsNow(); - } + FSR31Feature(unsigned int InHandleId, NVSDK_NGX_Parameter* InParameters); ~FSR31Feature(); };