How to get 60 FPS if PortraitEffect has been turned on by user?

Hi Apple,

It is frustrating that apps have no selection over portraitEffect, because it creates the following problem:

  • in some modes of our app, user wants portrait mode, so they turn it on for the app
  • in other modes of our app, 60-120 FPS is required for what the user is doing - user does NOT want portrait mode in this situation
  • switching between these modes needs to be fast & done in-app only, no popping control center open (think kiosk-style applications at airports)

... but as soon as portrait mode is on, all formats are delivering only 30 FPS. I have found no way to get 60 FPS: manually setting frame duration doesn't work, and on devices like the iPad 11" all 60 FPS formats support portrait effect so I cannot just select an activeFormat that doesn't support it.

How can our app offer both portrait mode and 60 FPS mode in different settings, without the user having to make confusing extra settings changes outside of our app?

How can our app offer both portrait mode and 60 FPS mode in different settings, without the user having to make confusing extra settings changes outside of our app?

The Portrait effect is always under user control. When appropriate, you may want to consider presenting the user with a message telling them that, in order to get a higher frame rate, they should disable the Portrait effect, and then present the interface to them via showSystemUserInterface(_:).

I also recommend that you file an enhancement request using Feedback Assistant, and describe how the current behavior is not ideal for your app.

I typed a whole reply, and this website threw it away. Yes I know about showSystemUserInterface(), it's not appropriate for our app at all (does not apply to kiosk-style / guest user scenarios).

Short version: we can't conform the Apple Human Interface Guidelines and offer the functionality of portrait mode because Apple has chosen to not allow us to disable portrait mode when we need to get 60 FPS. It's very confusing for the user to start a task and have a totally unrelated step that includes an out-of-app popup.

I filed FB11317925.

How to get 60 FPS if PortraitEffect has been turned on by user?
 
 
Q