iPhone 8 / 8Plus / X support

I would like to share quick update on our support for iPhone 8 / 8Plus / X.

There is known problem with A11 GPU and Unity content, which causes shadow flickering. Fixes have been pushed to supported Unity branches, so to avoid rendering glitches on new Phones it’s recommended to upgrade Unity to following versions and re-build / update your games in App Store:

  • 5.5.5 Patch 1 (not yet released, scheduled for second week of October)
    - 5.6.3 Patch 4 (or later) wait for 5.6.4 Patch 1
    - 2017.1.1 Patch 3 (or later) wait for 2017.1.2 Patch 1
    - 2017.2.0 RC 2 (or later)

Update!!!:
Unfortunately we discovered that our fix for A11 GPU (iPhone 8 / 8Plus / X) regressed in shader compilation correctness on macOS 10.11.6 and iOS 8.x and earlier.
Proper fix is coming in these versions:
5.5.5 Patch 1
5.6.4 Patch 1
2017.1.2 Patch 1

iOS Device generation enum fields for detecting these devices are being added and will appear into corresponding branches from 5.6 to 2017.x. Estimated to come in 1-2 weeks depending on branch.

iPhone X safe area detection API is being designed and implemented. Estimated time of delivery 2-3 weeks. Currently you can try our sample plugin for accessing safe area information: https://bitbucket.org/p12tic/iossafeareasplugin/src

Otherwise your application should work just fine on new devices. If you don’t rebuild your apps with Xcode 9 they will be letterboxed on iPhone X.

There are no plans for fixes / support for older unsupported (5.4.x and older) Unity versions.

1 Like

Thank you for supporting these new devices. Did I miss anything about support for the recent iPads? As I have not heard anything from Unity about ProMotion support.

2017.3 beta is mostly ready for it. But you have to manually add CADisableMinimumFrameDuration Info.plist key.

1 Like

We are happy to share sample plugin for accessing iPhone X safe area information: https://bitbucket.org/p12tic/iossafeareasplugin/src

Unfortunately we discovered that our fix for A11 GPU (iPhone 8 / 8Plus / X) regressed in shader compilation correctness on macOS 10.11.6 and iOS 8.x and earlier.
Proper fix is coming in these versions:
5.5.5 Patch 1
5.6.4 Patch 1
2017.1.2p1

2 Likes

Hello!

Do you think the flickering your referring to here is the same as we’re experiencing (see post: http://answers.unity3d.com/questions/1416036/problems-with-depth-buffer-only-pass-on-iphone-88.html)?

Are there any workarounds we can do in our project without waiting for the patch release?

Thanks!

Most likely yes. Unfortunately I’m not aware about workarounds. Though you could try one of current patch releases on iPhone 8 to verify that your issue is exactly the same.

Thanks Mantas. We tried 2017.1.1p4 and 2017.1.2f1 and both seem to resolve the issue. In the above post you mention a regression for iOS 8 and earlier. Our app requires iOS 9 or later, so should we theoretically be able to use the current versions to resolve the issue, or would you recommend waiting for the proper fix? Any updates on when those will be available?

You should be fine with current fix.

I’m not sure what shader compilation correctness is exactly, but I hope that’s what happened to me. Im on Unity 5.6.3 patch 4 and on IOS 11 iPhone 6 all is good, but on iPad Air 2 IOS 8 there are all these “compilation failed / shader unsupported” messages and everything is pink!

I’m using MacOS 10.10 so it sounds like what you are talking about.

I’m looking forward to the patch with patience because i have been stuck on Unity 5.2 for a few years due to regressions, and 5.6.3 is the first version where my game works again (thank you) so i am really excited about the opportunity to finally upgrade my version of Unity:) Good luck with the patch.

Yes, you are experiencing regression, which was mentioned in this thread. Release of corresponding 5.6 patch release is scheduled for Oct 18-20.

1 Like

Would you mind providing some more detail on exactly how/when Unity decides to show the letterboxing you mention for iPhone X?

I have an existing project which has been upgraded to 5.6.3p3 and it is showing the letterboxing when built with xCode 9. And then I made a new clean Unity project in 5.6.3p3 and this does not letterbox the app when built with xCode 9. Would like to understand how exactly this is enabled/disabled. (Would be great if this was just a check box in player settings but I can’t seem to find one that would be it).

Thanks

Building with Xcode 9 should be enough, what are your splashscreen settings in the project that shows letterboxing?

If we use macOS 10.12+ we shouldn’t have issues with iOS 8.x for builds of 5.6.3 Patch 4. Correct?

1 Like

That’s not correct.
The regression affects:

  • Mac standalone and Metal editor on macOS 10.11.6
  • iOS games running on iOS 8.x or earlier device (doesn’t matter which macOS was used for building app)
1 Like

The project that shows letterboxing has: ‘show splash screen’ turned off and launch screen type set to ‘none’.

Can confirm that setting the new project to match these settings it now also letterboxes.

You need to specify either some Launch Screen, which adapts to whole screen or Legacy Launch Image that specifies image of resolution that matches iPhone X resolution. The first one is available to be set from Unity, though later one is not, but you can do it manually in Xcode.

Thanks for clearing that up.

Good to see Unity’s looking at iPhone X…

We are using NGUI in our game, the safe area plugin seems not very useful for us, at the meantime we may just manually add padding on left, right and bottom for iPhoneX…

Hope the iOS Device generation enum will be available soon so we can start working on it. (It will be there on 5.6.4 right?)

We use:
Unity 5.6.3p4

New enum entries will ship in 5.6.4 Patch 1 (somewhere next week).