From 688a76c3580d7aac50d3ecfde4581fe85280b228 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:42:47 +0200 Subject: [PATCH] Use correct types for frame numbering Structure contains an NvU64 type for frame ID, use this type instead. Also no need to worry about overflowing it, as it would just 'wrap around'. --- r5dev/geforce/reflex.cpp | 13 +++++-------- r5dev/geforce/reflex.h | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/r5dev/geforce/reflex.cpp b/r5dev/geforce/reflex.cpp index 747a37f8..a83cd764 100644 --- a/r5dev/geforce/reflex.cpp +++ b/r5dev/geforce/reflex.cpp @@ -16,8 +16,8 @@ bool s_ReflexModeInfoUpToDate = false; NvAPI_Status s_ReflexModeUpdateStatus = NvAPI_Status::NVAPI_OK; // Static frame number counter for latency markers. -int s_ReflexFrameNumber = 0; -int s_ReflexLastFrameNumber = 0; +NvU64 s_ReflexFrameNumber = 0; +NvU64 s_ReflexLastFrameNumber = 0; //----------------------------------------------------------------------------- // Purpose: mark the parameters as out-of-date; force update next frame @@ -55,7 +55,7 @@ bool GFX_ParameterUpdateWasSuccessful(void) // Purpose: gets the reflex frame number // Output : int //----------------------------------------------------------------------------- -int GFX_GetFrameNumber(void) +NvU64 GFX_GetFrameNumber(void) { return s_ReflexFrameNumber; } @@ -65,10 +65,7 @@ int GFX_GetFrameNumber(void) //----------------------------------------------------------------------------- void GFX_IncrementFrameNumber(void) { - // Start over again to make sure this never overflows. Each frame number - // within the last 1000 must be unique, so its safe to reset after 4000. - if (++s_ReflexFrameNumber >= GFX_NVN_MAX_FRAME_COUNT) - s_ReflexFrameNumber = 0; + ++s_ReflexFrameNumber; } //----------------------------------------------------------------------------- @@ -106,7 +103,7 @@ void GFX_UpdateLowLatencyParameters(IUnknown* device, const bool useLowLatencyMo //----------------------------------------------------------------------------- void GFX_RunLowLatencyFrame(IUnknown* device) { - int currentFrameNumber = GFX_GetFrameNumber(); + NvU64 currentFrameNumber = GFX_GetFrameNumber(); if (s_ReflexLastFrameNumber == currentFrameNumber) return; diff --git a/r5dev/geforce/reflex.h b/r5dev/geforce/reflex.h index 8cb7157a..7bfe745e 100644 --- a/r5dev/geforce/reflex.h +++ b/r5dev/geforce/reflex.h @@ -4,7 +4,7 @@ void GFX_MarkLowLatencyParametersOutOfDate(void); bool GFX_HasPendingLowLatencyParameterUpdates(void); -int GFX_GetFrameNumber(void); +NvU64 GFX_GetFrameNumber(void); void GFX_IncrementFrameNumber(void); void GFX_UpdateLowLatencyParameters(IUnknown* device, const bool useLowLatencyMode,