From eb6b1f375a47232c617ec4b94e696f076a495729 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 27 Apr 2022 17:31:52 -0400 Subject: [PATCH] Allow dedicated to use precise sleep timing again Instead of only using one old sleep, just enforce framerate cap to match TICRATE. --- src/d_main.c | 7 +------ src/r_fps.c | 7 +++++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index eb01edd9d..6912ec988 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -892,15 +892,10 @@ void D_SRB2Loop(void) LUA_Step(); // Fully completed frame made. - if (!singletics && !dedicated) + if (!singletics) { I_FrameCapSleep(frameEnd); } - else if (dedicated) - { - // Preserve the pre-interp sleeping behavior for dedicated mode - I_Sleep(); - } // I_FinishUpdate is now here instead of D_Display, // because it synchronizes it more closely with the frame counter. diff --git a/src/r_fps.c b/src/r_fps.c index 1bc92c622..45f301551 100644 --- a/src/r_fps.c +++ b/src/r_fps.c @@ -42,6 +42,13 @@ consvar_t cv_fpscap = CVAR_INIT ("fpscap", "Match refresh rate", CV_SAVE, fpscap UINT32 R_GetFramerateCap(void) { + if (rendermode == render_none) + { + // If we're not rendering (dedicated server), + // we shouldn't be using any interpolation. + return TICRATE; + } + if (cv_fpscap.value == 0) { // 0: Match refresh rate