FPS drops when tapping the screen on iPhone 13 Pro Max

When running on iPhone13 Pro Max (iOS15.1) and tapping the screen with several fingers in succession, it may go to 30fps at the moment of the tap.

self.displayLink = [CADisplayLink displayLinkWithTarget: self selector: @selector(repaintDisplayLink)];
[self.displayLink setPreferredFramesPerSecond:60];
// or
// [self.displayLink setPreferredFrameRateRange:CAFrameRateRangeMake(60,60,60)];
[self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

Unity and cocos2d-x are written with almost the same code, but the same phenomenon occurs.

It is not reproduced on iPhoneXS MAX(iOS15.1), iPhoneSE2, iPhone7, etc.

Also, if you set it to 120fps and run it, and then tap it continuously, the 120fps will turn into 60fps in the same way.

Post not yet marked as solved Up vote post of Majing3 Down vote post of Majing3
4.8k views

Replies

I have the same issue with my game. Why isn't Apple fixing this? I'm receiving dozens of reports from iPhone 14 pro and 13 pro users who are having a stutter whenever they touch the screen in the game. They are leaving bad reviews and its impacting my sales. If Apple can't fix this, they should just tell us so I can remove my remove the app compatibility for promotion iPhones.

Same issue here. Using cocos2d-x. Havent found a fix yet.

This issue is impacting my apps as well.

The frame duration drops most of the time when a new touch has begun.

After testing on the following devices:

  • iPhone 8 running iOS 15.6.1
  • iPhone 11 running iOS 16.1.2
  • iPhone 14 running iOS 16.2

I noticed it can only be reproduced on the latter. The application runs smoothly on the first two devices, so I'm assuming it's related to iPhones supporting ProMotion. Still waiting for a fix or a workaround to prevent it from happening.

  • Have you been able to contact Apple about this? They have been ignoring all of my bug reports for months regarding this issue.

Add a Comment

I'm having the same issue. If device supports ProMotion - any touch drops fps down (120fps > 60fps, 90fps > 45fps, 60fps > 30fps).

Same here with iPhone 14 Pro =/ This solution doesn't solve the problem either. By the way, ProMotion is disabled for our game. This is very annoying =(

Seems like iOS 16.3.1 fixed it for me 👍

  • I was wrong still happens :/

Add a Comment

I'm having the same issue in iOS 16.3.1 and Unity 2021.3.20f1. When I tap the screen, the framerate temporarily drops. The solution from Unity here doesn't work for me either.

I have an android version of my app and it never drops framerate when tapping the screen. This does seem like an iOS bug or something with Unity's method of creating the Xcode project. But since others are seeing the same thing in Cocos2D, then likely just an iOS thing.

This is making me bonkers, it's a bummer that the Android version of my game is outperforming my iOS version.

Still happening on iPhone 14 Pro with iOS 16.4. 🥲 I also tried to disable ProMotion (limit the fps?) in the Settings in iOS, but didn't change anything.

I found a "workaround" for Unity https://forum.unity.com/threads/frame-rate-halves-when-tapping-the-display.1425075/#post-8959434 I am simply "cheating" iOS (I think?) to work like 120 Hz, so when you touch on screen, Frame Rate drops to 60 Hz. But I am setting Application.targetFrameRate to 60. This won't work if you're supporting more than 60 FPS.

By the way, didn't test this with non ProMotion iPhones (I'll update this post when I do).

And, also, this problem doesn't exist for iPad Pros (with ProMotion), only for iPhones.

Still have this problem on iOS 17.2.1 with Unity 2021.3.33f1

I am still experiencing this issue on iPhone 14 Pro Max 17.1 with Unity 2021.3.36f1. However, iPhone 12 Pro Max 17.3.1 with Unity 2021.3.36f1 works fine.