Search Unity

Optimized Frame Pacing - Freezes/Crashing on Android 6.0 and earlier

Discussion in 'Android' started by nztree, May 23, 2020.

  1. nztree

    nztree

    Joined:
    Oct 16, 2016
    Posts:
    9
    We're encountering a wave of bug reports from users on Android 4.4 - Android 6.0 devices on Unity 2019.13 with Optimized Frame Pacing switched on.

    We've been able to replicate a black screen crash on Android 4.4 as a DIRECT result of turning on Optimized Frame Pacing, which is immediately resolved by toggling off the setting in a new build. Other player reports note that they can play for 5-10 minutes before experiencing freezes that are only fixed by restarting.

    Here's a crash report on start for Android 4.4 running on Galaxy Tab 3:

    Code (CSharp):
    1. SwappyCommon could not initialize correctly.
    2. E/Swappy  ( 8318): Failed to initialize SwappyGL
    3. E/CRASH   ( 8318): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    4. E/CRASH   ( 8318): Version '2019.3.14f1 (2b330bf6d2d8)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a'
    5. E/CRASH   ( 8318): Build fingerprint: 'samsung/lt01wifixx/lt01wifi:4.4.2/KOT49H/T310XXUBNH3:user/release-keys'
    6. E/CRASH   ( 8318): Revision: '6'
    7. E/CRASH   ( 8318): ABI: 'arm'
    8. E/CRASH   ( 8318): Timestamp: 2012-01-01 16:44:56+1300
    9. E/CRASH   ( 8318): pid: 8318, tid: 8385, name: UnityMain  >>> com.app <<<
    10. E/CRASH   ( 8318): uid: 10425
    11. E/CRASH   ( 8318): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
    12. E/CRASH   ( 8318): Cause: null pointer dereference
    13. E/CRASH   ( 8318):     r0  00000000  r1  00000000  r2  00000000  r3  3e050a53
    14. E/CRASH   ( 8318):     r4  6986a040  r5  00000000  r6  641b8d44  r7  1d20043a
    15. E/CRASH   ( 8318):     r8  643fc904  r9  643fd240  r10 643fd66c  r11 643fd67c
    16. E/CRASH   ( 8318):     ip  00000003  sp  643fc868  lr  63c7cf6d  pc  63c7cf74
    17. E/CRASH   ( 8318):
    18. E/CRASH   ( 8318): backtrace:
    19. E/CRASH   ( 8318):       #10 pc 0004efab  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
    20. E/CRASH   ( 8318):       #11 pc 00027e20  /system/lib/libdvm.so
    21. E/CRASH   ( 8318):       #12 pc 0002ee04  /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
    22. E/CRASH   ( 8318):       #13 pc 0002c49c  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
    23. E/CRASH   ( 8318):       #14 pc 00061409  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
    24. E/CRASH   ( 8318):       #15 pc 0006142d  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
    25. E/CRASH   ( 8318):       #16 pc 00056107  /system/lib/libdvm.so
    26. E/CRASH   ( 8318):       #17 pc 0000d298  /system/lib/libc.so (__thread_entry+72)
    27. E/CRASH   ( 8318):       #18 pc 0000d430  /system/lib/libc.so (pthread_create+240)
     
    Last edited: May 23, 2020
  2. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,014
    Hi!
    Can you please report a bug?
    Thanks!
     
  3. JuliusM

    JuliusM

    Unity Technologies

    Joined:
    Apr 17, 2013
    Posts:
    835
    The tool used to optimise frame pacing was upgraded in 2019.3.14f1. Before submitting a bug, please make sure it is also reproducible with 2019.3.14f1 or newer version. Thank you.
     
  4. nztree

    nztree

    Joined:
    Oct 16, 2016
    Posts:
    9
    Hi Julius, will do. But as a heads up, that crash occurred on 2019.3.14f1 as you can see in the adb logs of the crash above.
     
  5. fseraph1

    fseraph1

    Joined:
    Jul 12, 2013
    Posts:
    8
    It seems on 2019.3.14f1 turn on Frame Pacing will crash all the Android 4.4(SDK 19) devices. here is the stack:
    05-27 10:51:18.355 I/SwappyCommon(15544): Swappy version 1.3
    05-27 10:51:18.355 I/SwappyCommon(15544): SDK version = 19
    05-27 10:51:18.365 E/SwappyCommon(15544): Error while getting method: getAppVsyncOffsetNanos
    05-27 10:51:18.365 E/Swappy (15544): SwappyCommon could not initialize correctly.
    05-27 10:51:18.365 E/Swappy (15544): Failed to initialize SwappyGL
    05-27 10:51:18.365 E/CRASH (15544): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    05-27 10:51:18.365 E/CRASH (15544): Version '2019.3.14f1 (2b330bf6d2d8)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a'
    05-27 10:51:18.365 E/CRASH (15544): Build fingerprint: 'samsung/fortunaltezm/fortunalte:4.4.4/KTU84P/G5308WZMU1AQA2:user/release-keys'
    05-27 10:51:18.365 E/CRASH (15544): Revision: '11'
    05-27 10:51:18.365 E/CRASH (15544): ABI: 'arm'
    05-27 10:51:18.365 E/CRASH (15544): Timestamp: 2020-05-27 10:51:18+0800
    05-27 10:51:18.365 E/CRASH (15544): pid: 15544, tid: 15557, name: UnityMain >>> com.fptestproject.rts <<<
    05-27 10:51:18.365 E/CRASH (15544): uid: 10980
    05-27 10:51:18.365 E/CRASH (15544): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
    05-27 10:51:18.365 E/CRASH (15544): Cause: null pointer dereference
    05-27 10:51:18.365 E/CRASH (15544): r0 00000000 r1 00000000 r2 00000000 r3 dd267309
    05-27 10:51:18.365 E/CRASH (15544): r4 68baa020 r5 00000000 r6 61582138 r7 1d20041e
    05-27 10:51:18.365 E/CRASH (15544): r8 617dc904 r9 617dd240 r10 617dd66c r11 617dd67c
    05-27 10:51:18.365 E/CRASH (15544): ip 00000003 sp 617dc868 lr 60fa4915 pc 60fa491c
    05-27 10:51:18.365 E/CRASH (15544):
    05-27 10:51:18.365 E/CRASH (15544): backtrace:
    05-27 10:51:18.365 E/CRASH (15544): #00 pc 00a0a91c /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #01 pc 00a0d8e9 /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #02 pc 00413897 /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #03 pc 0042a54b /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #04 pc 0041f0c7 /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #05 pc 0042d7e5 /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #06 pc 00420585 /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #07 pc 00420fd9 /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #08 pc 0042e9dd /data/app-lib/com.fptestproject.rts-1/libunity.so (BuildId: 7fcbc94940d5a992c94b6adab49d34d659b602b5)
    05-27 10:51:18.365 E/CRASH (15544): #09 pc 0002074c /system/lib/libdvm.so (dvmPlatformInvoke+112)
    05-27 10:51:18.365 E/CRASH (15544): #10 pc 000513f7 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
    05-27 10:51:18.365 E/CRASH (15544): #11 pc 00029be0 /system/lib/libdvm.so
    05-27 10:51:18.365 E/CRASH (15544): #12 pc 00031090 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
    05-27 10:51:18.365 E/CRASH (15544): #13 pc 0002e728 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
    05-27 10:51:18.365 E/CRASH (15544): #14 pc 00063859 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
    05-27 10:51:18.365 E/CRASH (15544): #15 pc 0006387d /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
    05-27 10:51:18.365 E/CRASH (15544): #16 pc 0005855b /system/lib/libdvm.so
    05-27 10:51:18.365 E/CRASH (15544): #17 pc 0000d308 /system/lib/libc.so (__thread_entry+72)
    05-27 10:51:18.365 E/CRASH (15544): #18 pc 0000d4a0 /system/lib/libc.so (pthread_create+240)

    is there any means to disable frame pacing specifically on some android versions?
     
  6. nztree

    nztree

    Joined:
    Oct 16, 2016
    Posts:
    9
    I believe you can upload different APKs that don't overlap and retain one that covers Android up to 4.4, then another up to 10 or whatever your target is. But I'll note that we were getting reports of freezing on Android up to 7.0 that are now fixed with a new build with optimized frame pacing turned off.
     
  7. fseraph1

    fseraph1

    Joined:
    Jul 12, 2013
    Posts:
    8
    I think we will hold until unity fixed this issue.obviously optimized frame pacing in unity is still not production ready.
     
  8. modegames

    modegames

    Joined:
    Dec 1, 2014
    Posts:
    37
    Can confirm that this issue happens within Unity 2019.3.2f1 testing on blank project with a Samsung Galaxy Tab 4 7.0" will cause this issue on startup turning off the Optimized Frame Pacing option under Player Settings fixes the issue. I am not sure that there is an update on this in more recent versions of Unity yet.
     
  9. DidzTM

    DidzTM

    Joined:
    Jan 30, 2018
    Posts:
    17
    Hi, I confirm that bug too. Tested on crashlytics HTC One (M8) API 19. The bug came from Java_com_google_androidgamesdk_ChoreographerCallback_nOnChoreographer.