Hey everyone. We’ve been experiencing the same issue with Unity 2018.4, 2019.1 and 2019.2. The performance issue seems to happen only on Android ARM64 IL2CPP builds. ARMv7 IL2CPP performs absolutely fine, but because of the Google Play 64-bit requirement we can’t fall back to using 32-bit builds only. We have created a bug ticket for this issue on which can be found here.
From what we can tell this is a known issue and has been fixed in Unity 2017.4 according to this ticket, but the fix has not been ported to Unity 2018 and above. At this point we can not downgrade to Unity 2017, so we’re kinda stuck with bad performance on select few devices. For us, the issue seems to come from Physics.Processing creating enormous spikes several times per second which makes for a very poor gameplay experience.
Hopefully the issue can be resolved soon because we’re receiving a lot of complaints regarding performance since we pushed out our ARM64 builds.
Can anyone else confirm this issue is only reproducible in Unity 2018/2019 and not the latest versions of 2017 LTS? As the subject of this issue notes, it appears that it was an issue in earlier 2017 versions (2017.4.20). It looks like from the ticket mentioned (1120019), it was fixed in 2017.4.0, which indicates that we may be talking about multiple ARM64 bugs.
We haven’t tested on Unity 2017.4 so I can’t say for certain if it suffers from the same bug or not. It seems a new ticket has opened up on the Unity issue tracker (check it out here) which indicates the issue was also found in Unity 2017.4 (assuming it’s the same bug). The ticket is currently active, hopefully it’ll be resolved soon.
I have the same issue with my game. FPS in ARMv64 build drop too low, But fine in Armv7 .
Edit : just found a temporary solution , disable all Debug.Log messages so now fps same on both architectures .
Im Working with Hololens the problem is that builds on Hololens 1 works perfectly, yet builds for Hololens2 require ARM architecture and disabling a stacktrace doesn’t help. Does anyone found any other solutions?
Yes hololens is Windows only, and it is build On UniversalWindowsPlatform with il2cpp.
Hololens 1 requires your build to be x86 or x64
Hololens 2 requires build to be ARM or ARM64
And we have a dramatic frame drop. When debug stack is enabled single error crashes whole app when it tries to output a stacktrace(so disabling it gave us a slight boost). From stable 60 -58 fps we went to 50-25 fps. By my guess the problem lies in processor architecture.
I already did perform a downgrade from 2019 to 2018.4.10 LTS (it was quiet hard). That gave us some improvements yet we still cant reach 60 fps
This problem is still valid in 2019.3.6f1. When I change scripting backend from Mono to IL2CPP 64 bit, without changing anything else, the fps drops from 40 to 10. Stacktrace debugs are off. Profiler results are relatively the same: meaning the same methods take most time in both builds, but in 64 bit build everything takes about 4 * more time.
I just realized that the issue is not only with 64 bit, but also 32 bit IL2CPP build suffers from the significantly lower performance. Only Mono build runs as expected.
Same here, after updating project to 2019.3.5f from 2019.2.6f we had 50% fps drop on android. Mono windows did not suffer any fps drop.
Settings we use are ARMv7/ARM64 IL2CPP. Disabled all stacktrace except errors.
We did try to use different GPU APIs. Did not help. Il update you, if i find something important.