Safari iOS 11 throttles to 33 fps on low power mode!

  • Hello!

    Has anyone else seen this? I've tested several different projects with Safari iOS 11 and it always throttles to 33 fps if you have low power mode enabled (the battery saving thing)! Is there anyway to get around this?

    This also seems to happen with other HTML5 engines like Phaser http://www.html5gamedevs.com/topic/33424-stuck-at-33-fps-on-ios-11/

    It also happens when you export the game with Cordova, so everyone that downloads your game on the App Store will get really bad frame rate if they have enabled low power mode

  • This is what low power mode is for. You've opted in to saving as much battery life as possible, and one way Safari does that is to drop animations to 30 FPS. It's a case of "it did what you told it". I suspect this effect would be OS-wide.

    If you could override this, you'd use up more battery, which is explicitly what the user wants to avoid. So I would be very surprised if there was any way to circumvent this.

    This reminds me of a similar case where someone wanted their game to override the volume settings on a phone and play audio even when the phone was muted. Obviously the user's preference should be respected and apps should not override it!

  • Yes, I get that! The problem is that games that are built with other engines (that are not html5) are not noticeably affected at all. For instance, I just tried Mario Run with low power mode enabled and it ran just fine at 60 fps (maybe the games performance was affected in some way but frame rate was not). I don't think people would accept that all games on their device ran at 33 fps if low power mode was enabled? It's such a huge difference! And I don't believe that Apple wants that either, or else everything would be throttled to 33 fps when low powered mode was enabled? But right now afaik only Safari gets the fps throttle and it really hurts packaged html5 games!

    I was hoping there was some kind of setting that would override the fps throttle in Safari for developers. Not override low power mode, just the fps throttle! It's pretty clear that the fps is throttled to 33 fps regardless how "resource heavy" the game is, because it happens in an almost empty test project that the device (iPhone 7 in my case) should be able to run at 60 fps even with low power mode enabled without any trouble at all!

  • I would guess this is very much intentional on Apple's part. Disabling the throttle is tantamount to overriding the user's setting, so I doubt there is any way to do that.

    If other native apps are not affected, then there is a problem that it's unfair on Cordova apps. We could file a bug for that. But then Apple might resolve it by throttling native apps too the goal is to save battery life, not maximise performance.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • It's really not fair on Cordova apps and it's not fair that all the great App Store games made with Construct 2/3 gets affected by this - please file the bug! If they wanted to save that much battery then my guess is that they would already have implemented a fps throttle for native apps as well. There are some really big battery draining games out there!

    33 fps is a horrible experience! it makes you think that your device is broken Nor does anyone that develops games for their devices. It's a really hard thing to explain to your users.

    Low power mode is fine but I would say that the fps throttle is a very big problem for game developers that are using Cordova and releasing games on the App Store!

    Do you think there's a specific reason that they have implemented this 33 fps Safari throttle, or just a general thing to save battery? Hopefully they can just remove it!

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)