diff --git a/platforms/common/src/main/java/dynamic_fps/impl/Constants.java b/platforms/common/src/main/java/dynamic_fps/impl/Constants.java index aaa76c58..4e82dc40 100644 --- a/platforms/common/src/main/java/dynamic_fps/impl/Constants.java +++ b/platforms/common/src/main/java/dynamic_fps/impl/Constants.java @@ -8,7 +8,10 @@ public class Constants { public static final boolean DEBUG = Platform.getInstance().isDevelopmentEnvironment(); // Miscellaneous - // Minecraft considers limits >=260 as infinite + + // Minimum limit, for lower FPS we cancel frames + public static final int MIN_FRAME_RATE_LIMIT = 15; + // Minecraft considers limits >=260 as unlimited public static final int NO_FRAME_RATE_LIMIT = 260; // The Cloth Config mod ID has changed a few times diff --git a/platforms/common/src/main/java/dynamic_fps/impl/DynamicFPSMod.java b/platforms/common/src/main/java/dynamic_fps/impl/DynamicFPSMod.java index 8a1afbc9..c81e207c 100644 --- a/platforms/common/src/main/java/dynamic_fps/impl/DynamicFPSMod.java +++ b/platforms/common/src/main/java/dynamic_fps/impl/DynamicFPSMod.java @@ -307,8 +307,8 @@ private static boolean checkForRender(long timeSinceLastRender) { return false; } - // Disable frame rate limiting - if (frameRateTarget == Constants.NO_FRAME_RATE_LIMIT) { + // Disable mod-side frame rate limiting + if (frameRateTarget >= Constants.MIN_FRAME_RATE_LIMIT) { return true; } diff --git a/platforms/common/src/main/java/dynamic_fps/impl/mixin/FramerateLimitTrackerMixin.java b/platforms/common/src/main/java/dynamic_fps/impl/mixin/FramerateLimitTrackerMixin.java index c0cb1077..4b3f9243 100644 --- a/platforms/common/src/main/java/dynamic_fps/impl/mixin/FramerateLimitTrackerMixin.java +++ b/platforms/common/src/main/java/dynamic_fps/impl/mixin/FramerateLimitTrackerMixin.java @@ -36,7 +36,7 @@ private void getFramerateLimit(CallbackInfoReturnable callbackInfo) { if (state != PowerState.FOCUSED) { // Instruct Minecraft to render a minimum of 15 FPS // Going lower here makes resuming again feel sluggish - callbackInfo.setReturnValue(Math.max(this.getFramerateTarget(), 15)); + callbackInfo.setReturnValue(Math.max(this.getFramerateTarget(), Constants.MIN_FRAME_RATE_LIMIT)); } else { IdleCondition condition = DynamicFPSConfig.INSTANCE.idle().condition();