Search Issue Tracker

Won't Fix



Found in


Issue ID




[Android] 3x worse performance in Unity 5.6 than 5.5 on Google Galaxy Nexus



How to reproduce:
1. Open the attached project
2. Build the app to an Android device with Deep Profiling enabled
3. Wait for app to start fully (and then just let it idle, don't touch or anything)
4. Observe the Camera.Render > Drawing > Render.TransparentGeometry
5. Note the time it takes in milliseconds over a period of time

Google Galaxy Nexus[maguro],TI OMAP, PowerVR SGX 540, OS 4.3
Result: 5.5.3f1 ~10.01ms; 5.6.0p1 ~26.73 ms; 2017.1.0b1 Profiler doesn't connect to this device

DUT (not reproducible):
LG G5 [LG-H850], Qualcomm Snapdragon 820, Adreno 530, OS 6.0.1
Result: 5.5.3f1 ~0.06ms; 5.6.0p1 ~1.28 ms

HTC One mini2 [M8MIN], Qualcomm Snapdragon 400, Adreno 305, OS 4.4.2
Result: 5.5.3f1 ~0.56ms; 5.6.0p1 ~0.52 ms

Samsung Galaxy S III [GT-I9300], Samsung Exynos, ARM Mali-400 MP, OS 4.3
Result: 5.5.3f1 ~1 ms; 5.6.0p1 ~1 ms; 2017.1.0b1 ~1 ms

Amazon Fire HD 8[KFMEWI], MediaTek, PowerVR, OS 5.1.1
Result: 5.5.3f1 ~0.75 ms; 5.6.0p1 ~0.7 ms;

Stress testing with the same project:
60, LG G3, OS 5.0, Qualcomm Snapdragon 801, Adreno (TM) 330
Result: 5.5.5p1 max ~ 11.23 ms; 5.6.4f1 max ~7.29 ms

48, Samsung Galaxy S3, OS 4.3, Samsung Exynos, Mali-400 MP
Result: 5.5.5p1 max ~ 5.72 ms; 5.6.4f1 max ~5.92 ms

19, Samsung Galaxy S3 mini, OS 4.1.2, NovaThor, Mali-400 MP
Result: 5.5.5p1 max ~ 9.76 ms; 5.6.4f1 max ~6.93 ms

Sprite shaders are written in a quite liberal way (doing ETC1 alpha texture lookups for everything on android). This is unnecessary, however it has little impact on most phones. In this case there is a severe performance hit on a single old phone, but it can be workarounded by removing the shader code under #if ETC1_EXTERNAL_ALPHA in the UnitySprites.cginc

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.