Search Unity

Experimental Android 64-bit ARM support (a.k.a. ARM64, a.k.a. AArch64)

Discussion in 'Android' started by Ignas83, Jan 10, 2018.

  1. Ignas83

    Ignas83

    Unity Technologies

    Joined:
    Mar 26, 2013
    Posts:
    28
    I'd be interested to get your feedback on experimental Android 64-bit ARM support in 2018.1.0 Beta 2. You can find more details in this blog post. It mentions that preview will be available in 2018.2 but it's already here - in 2018.1! Let me know if you find any issues and any good or bad experiences that you have with it.
     
    Nehrk, Yury-Habets and yasirkula like this.
  2. r-pedra

    r-pedra

    Joined:
    Dec 4, 2015
    Posts:
    104
    Hi,
    Doest this mean we will have to do like on iOS, with ULTRA FAT BUILD including x86 + ARM32 + ARM64?
    When will this nonsense stop ? lol
     
  3. Ignas83

    Ignas83

    Unity Technologies

    Joined:
    Mar 26, 2013
    Posts:
    28
  4. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    My ARCore game crashes immediately on app start with ARM64 as a target. IL2CPP with ARMv7 works fine.

    Tested with 2018.1.0f2 and Google Pixel.

    Code (CSharp):
    1. 05-03 16:14:47.325 12944 12963 D Unity   : Loading ARCore V1+ path.
    2. 05-03 16:14:47.329 12944 12963 E Unity   : Unable to find arcore_unity_api
    3. 05-03 16:14:47.329 12944 12963 W Unity   : ARCore Unity Plugin could not be loaded: arcore_unity_api.so not found.
    4. 05-03 16:14:47.329 12944 12963 W Unity   :
    5. 05-03 16:14:47.329 12944 12963 W Unity   : (Filename:  Line: 22)
    6. 05-03 16:14:47.329 12944 12963 W Unity   :
    7. 05-03 16:14:47.340 12944 12963 I Unity   : SystemInfo CPU = ARM64 FP ASIMD AES, Cores = 4, Memory = 3754mb
    8. 05-03 16:14:47.340 12944 12963 I Unity   : SystemInfo ARM big.LITTLE configuration: 2 big (mask: 12), 2 little (mask: 3)
    9. 05-03 16:14:47.341 12944 12963 I Unity   : ApplicationInfo com.MyGame.MyGame version 0.0.1-alpha build 23fcf853-d948-4733-96c9-c80ba37bcbfd
    10. 05-03 16:14:47.341 12944 12963 I Unity   : Built from '2018.1/staging' branch, Version '2018.1.0f2 (d4d99f31acba)', Build type 'Release', Scripting Backend 'il2cpp'
    11. 05-03 16:14:47.677 12944 12963 E Unity   : Unable to find unitygar
    12. 05-03 16:14:47.699 12944 12963 D Unity   :  GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_OES_texture_compression_astc GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_EXT_mul
    13. 05-03 16:14:47.699 12944 12963 D Unity   : tisampled_render_to_texture2 GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_EXT_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_texture_norm16 GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_OVR_multiview GL_OVR_multiview2 GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_OVR_multiview_multisampled_render_to_texture GL_EXT_buffer_storage GL_EXT_external_buffer GL_EXT_blit_framebuffer_params GL_EXT_clip_cull_distance
    14. 05-03 16:14:47.699 12944 12963 D Unity   :  GL_EXT_protected_textures GL_EXT_shader_non_constant_global_initializers GL_QCOM_framebuffer_foveated GL_QCOM_shader_framebuffer_fetch_noncoherent GL_EXT_EGL_image_array GL_NV_shader_noperspective_interpolation
     
  5. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    This is apparently logcat from a release version - can you please try development and get back with the log? Thanks!
     
  6. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Oops, here is the development logcat (and without a unity filter I was using before):

    Code (CSharp):
    1. 05-04 16:20:51.002   879  1450 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity bnds=[35,608][237,870]} from uid 10031
    2. 05-04 16:20:51.010   675   675 D QCOM PowerHAL: LAUNCH HINT: ON
    3. 05-04 16:20:51.012   675   675 D QCOM PowerHAL: Activity launch hint handled
    4. 05-04 16:20:51.031   879  1450 I ActivityManager: Start proc 11106:com.TestCompany.TestGame/u0a232 for activity com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity
    5. 05-04 16:20:51.035 11106 11106 I zygote64: Late-enabling -Xcheck:jni
    6. 05-04 16:20:51.057   879  1124 I ActivityManager: Config changes=480 {1.0 520mcc3mnc [en_US] ldltr sw411dp w683dp h387dp 420dpi nrml land finger -keyb/v/h -nav/h appBounds=Rect(0, 0 - 1794, 1080) s.15}
    7. 05-04 16:20:51.066   879  1124 I ActivityManager: Override config changes=480 {1.0 520mcc3mnc [en_US] ldltr sw411dp w683dp h387dp 420dpi nrml land finger -keyb/v/h -nav/h appBounds=Rect(0, 0 - 1794, 1080) s.15} for displayId=0
    8. 05-04 16:20:51.121   879  1139 I InputReader: Reconfiguring input devices.  changes=0x00000004
    9. 05-04 16:20:51.121   879  1139 I InputReader: Device reconfigured: id=7, name='synaptics_dsxv26', size 1080x1920, orientation 1, mode 1, display id 0
    10. 05-04 16:20:51.126   879  1139 I InputReader: Reconfiguring input devices.  changes=0x00000004
    11. 05-04 16:20:51.141  6283  6283 D GeckoApplication: onConfigurationChanged: en_US, background: false
    12. 05-04 16:20:51.142  6283  6283 D GeckoLocales: No selected locale. No correction needed.
    13. 05-04 16:20:51.177   879  1139 I InputReader: Reconfiguring input devices.  changes=0x00000004
    14. 05-04 16:20:51.185  1212  1212 I EmojiSearchExtension: onDestroy()
    15. 05-04 16:20:51.185  1212  1212 I EmojiSearchExtension: onDeactivate()
    16. 05-04 16:20:51.223  1212  1212 I ModuleManager: Module object of interface com.google.android.apps.inputmethod.libs.search.emoji.EmojiSearchExtension loaded.
    17. 05-04 16:20:51.225  1212  1212 I GoogleInputMethod: onStartInput() : Dummy InputConnection bound
    18. 05-04 16:20:51.233   879  9760 I Adreno  : QUALCOMM build                   : 2941438, I916dfac403
    19. 05-04 16:20:51.233   879  9760 I Adreno  : Build Date                       : 10/03/17
    20. 05-04 16:20:51.233   879  9760 I Adreno  : OpenGL ES Shader Compiler Version: EV031.21.02.00
    21. 05-04 16:20:51.233   879  9760 I Adreno  : Local Branch                     : O18A
    22. 05-04 16:20:51.233   879  9760 I Adreno  : Remote Branch                    :
    23. 05-04 16:20:51.233   879  9760 I Adreno  : Remote Branch                    :
    24. 05-04 16:20:51.233   879  9760 I Adreno  : Reconstruct Branch               :
    25. 05-04 16:20:51.241   879  1139 I InputReader: Reconfiguring input devices.  changes=0x00000004
    26. 05-04 16:20:51.246   879  9760 I Adreno  : PFP: 0x005ff087, ME: 0x005ff063
    27. 05-04 16:20:51.249   879  9760 I zygote64: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
    28. 05-04 16:20:51.250   879  9760 I OpenGLRenderer: Initialized EGL, version 1.4
    29. 05-04 16:20:51.250   879  9760 D OpenGLRenderer: Swap behavior 2
    30. 05-04 16:20:51.264   879  1139 I InputReader: Reconfiguring input devices.  changes=0x00000004
    31. 05-04 16:20:51.289 11106 11106 I Unity   : onResume
    32. 05-04 16:20:51.322 11106 11106 D OpenGLRenderer: HWUI GL Pipeline
    33. 05-04 16:20:51.322  1242  1242 W StaticLayout: maxLineHeight should not be -1.  maxLines:1 lineCount:1
    34. 05-04 16:20:51.326  1242  1242 I chatty  : uid=10041(com.android.systemui) identical 10 lines
    35. 05-04 16:20:51.326  1242  1242 W StaticLayout: maxLineHeight should not be -1.  maxLines:1 lineCount:1
    36. 05-04 16:20:51.338 11106 11123 D Unity   : SetWindow 0 0x7eb858b010
    37. 05-04 16:20:51.339 11106 11123 D Unity   : SetWindow 0 0x7eb858b010
    38. 05-04 16:20:51.347  1242  1242 W StaticLayout: maxLineHeight should not be -1.  maxLines:1 lineCount:1
    39. 05-04 16:20:51.348  1242  1242 I chatty  : uid=10041(com.android.systemui) identical 10 lines
    40. 05-04 16:20:51.348  1242  1242 W StaticLayout: maxLineHeight should not be -1.  maxLines:1 lineCount:1
    41. 05-04 16:20:51.355  1242  1242 D StatusBar: disable<e i a s b h r c s q >
    42. 05-04 16:20:51.367 11106 11106 I Unity   : windowFocusChanged: true
    43. 05-04 16:20:51.373   879  1124 E WindowManager: Performed 6 layouts in a row. Skipping
    44. 05-04 16:20:51.376  1212  1212 I GoogleInputMethod: onStartInput() : Dummy InputConnection bound
    45. 05-04 16:20:51.377  1212  1212 I LatinMetricsFactory: Remove content log processors.
    46. 05-04 16:20:51.378   879   930 I ActivityManager: Displayed com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity: +355ms
    47. 05-04 16:20:51.382   675   675 D QCOM PowerHAL: LAUNCH HINT: OFF
    48. 05-04 16:20:51.389 11106 11123 D Unity   : Loading ARCore V1+ path.
    49. 05-04 16:20:51.391  1242  1242 W StatusBar/NavBarView: *** Invalid layout in navigation bar (sizeChanged this=126x1080 cur=126x1038)
    50. 05-04 16:20:51.392 11106 11123 D Unity   : Unable to lookup library path for 'arcore_unity_api', native render plugin support disabled.
    51. 05-04 16:20:51.392   879  1124 I WindowManager: Screen frozen for +358ms due to Window{eba8f20 u0 StatusBar}
    52. 05-04 16:20:51.394 11106 11123 E Unity   : Unable to find arcore_unity_api
    53. 05-04 16:20:51.394 11106 11123 D Unity   : ARCore Unity Plugin could not be loaded: arcore_unity_api.so not found.
    54. 05-04 16:20:51.394 11106 11123 W Unity   : ARCore Unity Plugin could not be loaded: arcore_unity_api.so not found.
    55. 05-04 16:20:51.394 11106 11123 W Unity   :
    56. 05-04 16:20:51.394 11106 11123 W Unity   : (Filename: /Users/builduser/buildslave/unity/build/External/Tango/builds/gen/ApiFuncARCoreUnity.cpp Line: 22)
    57. 05-04 16:20:51.394 11106 11123 W Unity   :
    58. 05-04 16:20:51.394 11106 11123 D Unity   : [VFS] Mount /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/base.apk
    59. 05-04 16:20:51.421 11106 11123 I Unity   : SystemInfo CPU = ARM64 FP ASIMD AES, Cores = 4, Memory = 3754mb
    60. 05-04 16:20:51.421 11106 11123 I Unity   : SystemInfo ARM big.LITTLE configuration: 2 big (mask: 12), 2 little (mask: 3)
    61. 05-04 16:20:51.422 11106 11123 I Unity   : ApplicationInfo com.TestCompany.TestGame version 0.0.1-alpha build ea2de25d-2d97-4c54-879c-c5b93ecbb410
    62. 05-04 16:20:51.422 11106 11123 I Unity   : Built from '2018.1/staging' branch, Version '2018.1.0f2 (d4d99f31acba)', Build type 'Development', Scripting Backend 'il2cpp'
    63. 05-04 16:20:51.422 11106 11123 D Unity   : [EGL] Attaching window :0x7eb858b010
    64. 05-04 16:20:51.504  1242  1242 D StatusBar: disable<e i a s b h r c s q >
    65. 05-04 16:20:51.525  2123  2123 I StreamRenderer: cleanUpRendererScope(nowcards--5402527299940802738)
    66. 05-04 16:20:51.535  2123  2123 I PBSessionCacheImpl: Deleted sessionId[16301770240355] from persistence.
    67. 05-04 16:20:51.554  2123  2123 W SearchService: Abort, client detached.
    68. 05-04 16:20:51.561  2123  2123 I StreamController: cleanUpControllerScope(nowcards--5402527299940802738)
    69. 05-04 16:20:51.570   879   895 I WifiService: getWifiEnabledState uid=10045
    70. 05-04 16:20:51.648 11106 11123 D Unity   : PlayerConnection initialized from /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/base.apk/assets/bin/Data (debug = 0)
    71. 05-04 16:20:51.648 11106 11123 D Unity   : PlayerConnection initialized network socket : 0.0.0.0 55217
    72. 05-04 16:20:51.649 11106 11123 D Unity   : PlayerConnection initialized unix socket : Unity-com.TestCompany.TestGame
    73. 05-04 16:20:51.649 11106 11123 D Unity   : Multi-casting "[IP] 0.0.0.0 [Port] 55217 [Flags] 2 [Guid] 2153891276 [EditorId] 2648903286 [Version] 1048832 [Id] AndroidPlayer(Google_Pixel@10.1.96.34) [Debug] 0" to [225.0.0.222:54997]...
    74. 05-04 16:20:51.649 11106 11123 D Unity   : Started listening to [0.0.0.0:55217]
    75. 05-04 16:20:52.273 11106 11123 D Unity   : InitializeScriptEngine OK (0x7eb872dfc0)
    76. 05-04 16:20:52.273 11106 11123 D Unity   : PlayerConnection already initialized - listening to [0.0.0.0:55217]
    77. 05-04 16:20:52.294 11106 11123 D Unity   : Unable to lookup library path for 'unitygar''google/sailfish/sailfish:8.1.0/OPM2.171019.029/4657601:user/release-keys'
    78. 05-04 16:20:52.399 11162 11162 F DEBUG   : Revision: '0'
    79. 05-04 16:20:52.399 11162 11162 F DEBUG   : ABI: 'arm64'
    80. 05-04 16:20:52.399 11162 11162 F DEBUG   : pid: 11106, tid: 11123, name: UnityMain  >>> com.TestCompany.TestGame <<<
    81. 05-04 16:20:52.399 11162 11162 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7daaa17000
    82. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x0   0000007eaaa17000  x1   0000007eaaa17b04  x2   0000000000000000  x3   0000000000804000
    83. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x4   0000007eab21b000  x5   0000000000000098  x6   0000000000000000  x7   0000000000000a8c
    84. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x8   0000000000000000  x9   0000000000000078  x10  ffffffff00000000  x11  0000000000000000
    85. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x12  0000000000000248  x13  0000007daaa17000  x14  0000000000000000  x15  0000007eab5fa5b8
    86. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x16  0000000000000000  x17  0000000000000004  x18  0000007eaaa17070  x19  0000000000000001
    87. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x20  0000007eab5fa7cc  x21  0000007eaaa17a48  x22  0000000000000b04  x23  0000007eab5fa820
    88. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x24  0000007eaaa17000  x25  0000007eaaa17a8c  x26  0000000000000b04  x27  0000000000000001
    89. 05-04 16:20:52.399 11162 11162 F DEBUG   :     x28  0000007eb5690000  x29  0000007eab5fb330  x30  0000007eb531b2ec
    90. 05-04 16:20:52.399 11162 11162 F DEBUG   :     sp   0000007eab5fa410  pc   0000007eb531ab8c  pstate 0000000080000000
    91. 05-04 16:20:52.487 11162 11162 F DEBUG   :
    92. 05-04 16:20:52.487 11162 11162 F DEBUG   : backtrace:
    93. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #00 pc 0000000000a25b8c  /vendor/lib64/libllvm-glnext.so (ShaderObjects::adjustSymbolPointers(char*, GLSL_SYMBOL*)+76)
    94. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #01 pc 0000000000a262e8  /vendor/lib64/libllvm-glnext.so (ShaderObjects::loadProgramBinary(CompilerContext*, void*, unsigned long, QGLC_LINKPROGRAM_RESULT*)+904)
    95. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #02 pc 0000000000976db0  /vendor/lib64/libllvm-glnext.so (CompilerContext::loadProgramBinary(void*, unsigned long, QGLC_LINKPROGRAM_RESULT*)+176)
    96. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #03 pc 0000000000a3ce58  /vendor/lib64/libllvm-glnext.so (QGLCLoadProgramBinary(void*, void*, unsigned long, QGLC_LINKPROGRAM_RESULT*)+88)
    97. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #04 pc 000000000016bfd8  /vendor/lib64/egl/libGLESv2_adreno.so (EsxShaderCompiler::LoadProgramBinaryBlob(EsxContext*, EsxProgram*, void const*, unsigned long, EsxInfoLog*)+184)
    98. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #05 pc 0000000000151dac  /vendor/lib64/egl/libGLESv2_adreno.so (EsxProgram::LoadProgramBinary(EsxContext*, unsigned int, void const*, int)+172)
    99. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #06 pc 00000000000e5a68  /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::GlProgramBinary(unsigned int, unsigned int, void const*, int)+136)
    100. 05-04 16:20:52.487 11162 11162 F DEBUG   :     #07 pc 000000000012de90  /vendor/lib64/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlProgramBinary(EsxDispatch*, unsigned int, unsigned int, void const*, int)+464)
    101. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #08 pc 00000000000ca244  /vendor/lib64/egl/libGLESv2_adreno.so (glProgramBinary+68)
    102. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #09 pc 0000000000808e94  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (GlslGpuProgramGLES::LoadFromBinaryShaderCache(unsigned int&, core::basic_string<char, core::StringStorageDefault<char>> const&, ShaderChannelMask&, char const*)+884)
    103. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #10 pc 0000000000807848  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (GlslGpuProgramGLES::CompileProgram(unsigned int&, core::basic_string<char, core::StringStorageDefault<char>> const&, core::basic_string<char, core::StringStorageDefault<char>> const&, core::basic_string<char, core::StringStorageDefault<char>> const&, core::basic_string<char, core::StringStorageDefault<char>> const&, core::basic_string<char, core::StringStorageDefault<char>> const&, ShaderChannelMas
    104. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #11 pc 0000000000806cf0  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (_ZN18GlslGpuProgramGLES6CreateERK13dynamic_arrayIhLm0EER17ShaderChannelMask+2912)
    105. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #12 pc 0000000000805fa4  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (_ZN18GlslGpuProgramGLESC1ERK13dynamic_arrayIhLm0EER22CreateGpuProgramOutput+676)
    106. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #13 pc 00000000007196f4  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (_Z16CreateGpuProgram20ShaderGpuProgramTypeRK13dynamic_arrayIhLm0EER22CreateGpuProgramOutput+324)
    107. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #14 pc 00000000005f0cac  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (ShaderLab::SubProgram::Compile()+868)
    108. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #15 pc 00000000005b3dc8  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (ShaderLab::Program::CreateFromSerializedProgram(ShaderLab::SerializedProgram const&, ShaderType, int, PropertyNamesSet*, Shader const*)+200)
    109. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #16 pc 00000000005b3678  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (ShaderLab::Pass::CreateFromSerializedPass(ShaderLab::SerializedPass const&, Shader const*)+392)
    110. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #17 pc 00000000005b3150  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (_ZN9ShaderLab9SubShader29CreateFromSerializedSubShaderERKNS_19SerializedSubShaderERSt6vectorI4PPtrI6ShaderESaIS7_EEbPS6_+276)
    111. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #18 pc 00000000005b2d58  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (_ZN9ShaderLab9IntShader26CreateFromSerializedShaderERKNS_16SerializedShaderERSt6vectorI4PPtrI6ShaderESaIS7_EEbPS6_+916)
    112. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #19 pc 00000000005b52b0  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (_Z26ShaderFromSerializedShaderPKN9ShaderLab16SerializedShaderERSt6vectorI4PPtrI6ShaderESaIS6_EEbPS5_+20)
    113. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #20 pc 00000000005b7790  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (Shader::CreateFromParsedForm()+244)
    114. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #21 pc 00000000005b7a2c  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (Shader::CreateAndPostLoad()+48)
    115. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #22 pc 00000000005b79dc  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (Shader::AwakeFromLoad(AwakeFromLoadMode)+40)
    116. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #23 pc 0000000000787c68  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (AwakeFromLoadQueue::InvokePersistentManagerAwake(AwakeFromLoadQueue::Item*, unsigned int, AwakeFromLoadMode)+136)
    117. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #24 pc 000000000078a254  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (PersistentManager::IntegrateAllThreadedObjects()+128)
    118. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #25 pc 000000000078ad38  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (PersistentManager::LoadAndIntegrateAllPreallocatedObjects(PersistentManager::LockFlags)+84)
    119. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #26 pc 000000000078b1e8  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (PersistentManager::ReadObject(int, AwakeFromLoadMode)+284)
    120. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #27 pc 0000000000551160  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (BuiltinResourceManager::GetResource(Unity::Type const*, core::basic_string<char, core::StringStorageDefault<char>> const&) const+144)
    121. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #28 pc 00000000005acfec  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (Shader::GetDefault()+120)
    122. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #29 pc 00000000005b7454  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (Shader::LoadDefaultShaders()+44)
    123. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #30 pc 000000000054c094  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (InitializeEngineGraphics(bool)+128)
    124. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #31 pc 000000000054bed8  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (PlayerInitEngineGraphics(bool)+80)
    125. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #32 pc 00000000008756b8  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (UnityInitApplication()+2244)
    126. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #33 pc 0000000000875f48  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (UnityPlayerLoop()+140)
    127. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #34 pc 0000000000878e60  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/lib/arm64/libunity.so (nativeRender(_JNIEnv*, _jobject*)+76)
    128. 05-04 16:20:52.488 11162 11162 F DEBUG   :     #35 pc 0000000000025adc  /data/app/com.TestCompany.TestGame-SVdAUTo1C91iwLRKK4vo8w==/oat/arm64/base.odex (offset 0x1b000)
    129. 05-04 16:20:53.529   726   726 E /system/bin/tombstoned: Tombstone written to: /data/tombstones/tombstone_06
    130. 05-04 16:20:53.531   879 11163 W ActivityManager:   Force finishing activity com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity
    131. 05-04 16:20:53.536   879   927 I BootReceiver: Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
    132. 05-04 16:20:53.546   879   920 I ActivityManager: Showing crash dialog for package com.TestCompany.TestGame u0
    133. 05-04 16:20:53.557   686   686 E lowmemorykiller: Error writing /proc/11106/oom_score_adj; errno=22
    134. 05-04 16:20:53.559   501  1988 E SurfaceFlinger: Failed to find layer (SurfaceView - com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity#0) in layer parent (no-parent).
    135. 05-04 16:20:53.559   501  1988 E SurfaceFlinger: Failed to find layer (Background for - SurfaceView - com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity#0) in layer parent (no-parent).
    136. 05-04 16:20:53.560   879  1138 W InputDispatcher: channel 'c89cb73 com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
    137. 05-04 16:20:53.560   879  1138 E InputDispatcher: channel 'c89cb73 com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
    138. 05-04 16:20:53.561   879   895 I WindowManager: WIN DEATH: Window{c89cb73 u0 com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity}
    139. 05-04 16:20:53.561   879   895 W InputDispatcher: Attempted to unregister already unregistered input channel 'c89cb73 com.TestCompany.TestGame/com.unity3d.player.UnityPlayerActivity (server)'
    140. 05-04 16:20:53.563  1242  1242 D StatusBar: disable<e i a s b h r c s q >
    141. 05-04 16:20:53.570   879  1450 I ActivityManager: Process com.TestCompany.TestGame (pid 11106) has died: vis  +99TOP
    142. 05-04 16:20:53.571   879   921 W zygote64: kill(-11106, 9) failed: No such process
    143. 05-04 16:20:53.581   641   641 I Zygote  : Process 11106 exited due to signal (11)
    144. 05-04 16:20:53.589   879  1450 I ActivityManager: Config changes=480 {1.0 520mcc3mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger -keyb/v/h -nav/h appBounds=Rect(0, 0 - 1080, 1794) s.16}
    145. 05-04 16:20:53.597   879  1450 I ActivityManager: Override config changes=480 {1.0 520mcc3mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger -keyb/v/h -nav/h appBounds=Rect(0, 0 - 1080, 1794) s.16} for displayId=0
    146. 05-04 16:20:53.617   879   921 W zygote64: kill(-11106, 9) failed: No such process
    147. 05-04 16:20:53.617   879   921 I zygote64: Successfully killed process cgroup uid 10232 pid 11106 in 46ms
    148. 05-04 16:20:53.669  6283  6283 D GeckoApplication: onConfigurationChanged: en_US, background: false
    149. 05-04 16:20:53.669  6283  6283 D GeckoLocales: No selected locale. No correction needed.
    150. 05-04 16:20:53.674   879   920 W Looper  : Dispatch took 130ms on android.ui, h=Handler (com.android.server.am.ActivityManagerService$UiHandler) {2673828} cb=null msg=1
    151. 05-04 16:20:53.676   501   501 D SurfaceFlinger: duplicate layer name: changing com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity to com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity#1
    152. 05-04 16:20:53.692  1212  1212 I EmojiSearchExtension: onDestroy()
    153. 05-04 16:20:53.692  1212  1212 I EmojiSearchExtension: onDeactivate()
    154. 05-04 16:20:53.713  1212  1212 I ModuleManager: Module object of interface com.google.android.apps.inputmethod.libs.search.emoji.EmojiSearchExtension loaded.
    155. 05-04 16:20:53.716  1212  1212 I GoogleInputMethod: onStartInput() : Dummy InputConnection bound
    156. 05-04 16:20:53.728   879  9760 I Adreno  : QUALCOMM build                   : 2941438, I916dfac403
    157. 05-04 16:20:53.728   879  9760 I Adreno  : Build Date                       : 10/03/17
    158. 05-04 16:20:53.728   879  9760 I Adreno  : OpenGL ES Shader Compiler Version: EV031.21.02.00
    159. 05-04 16:20:53.728   879  9760 I Adreno  : Local Branch                     : O18A
    160. 05-04 16:20:53.728   879  9760 I Adreno  : Remote Branch                    :
    161. 05-04 16:20:53.728   879  9760 I Adreno  : Remote Branch                    :
    162. 05-04 16:20:53.728   879  9760 I Adreno  : Reconstruct Branch               :
    163. 05-04 16:20:53.749  2123  2123 W SessionLifecycleManager: Handover failed. Creating new session controller.
    164. 05-04 16:20:53.755  2123  2123 W ThreadPoolDumper: Queue length for executor Lightweight is now 11. Perhaps some tasks are too long, or the pool is too small.
    165. 05-04 16:20:53.760  2123  2123 I OptInState: There is a new client and it does not support opt-in. Dropping request.
    166. 05-04 16:20:53.781  2123  2123 I StreamController: registerScope: nowcards--5402527299940802738
    167. 05-04 16:20:53.784   879  9760 I Adreno  : PFP: 0x005ff087, ME: 0x005ff063
    168. 05-04 16:20:53.788   879  9760 I zygote64: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
    169. 05-04 16:20:53.797   879   930 I zygote64: Explicit concurrent copying GC freed 185597(6MB) AllocSpace objects, 11(540KB) LOS objects, 42% free, 21MB/37MB, paused 450us total 397.948ms
    170. 05-04 16:20:53.797   879   889 I zygote64: WaitForGcToComplete blocked Background on HeapTrim for 49.708ms
    171. 05-04 16:20:53.798   879   930 W ActivityManager: setHasOverlayUi called on unknown pid: 11106
    172. 05-04 16:20:53.802   879  1139 I InputReader: Reconfiguring input devices.  changes=0x00000004
    173. 05-04 16:20:53.802   879  1139 I InputReader: Device reconfigured: id=7, name='synaptics_dsxv26''L' hardware scan: scan stopped, no powered clients
    174. 05-04 16:20:54.015  2123 10204 I WorkController: WorkProxy is not enqueued because WorkController is disposed
    175. 05-04 16:20:54.016  2123 10590 I WorkController: WorkProxy is not enqueued because WorkController is disposed
    176. 05-04 16:20:54.039  2089  9523 W ctxmgr  : [AclManager]No 2 for (accnt=account#-517948760#, com.google.android.gms(10018):PlacesProducer, vrsn=12529000, 0, 3pPkg = null ,  3pMdlId = null ,  pid = 2089). Was: 3 for 18, account#-517948760#
    177. 05-04 16:20:54.040  2123 10204 I WorkController: WorkProxy is not enqueued because WorkController is disposed
    178. 05-04 16:20:54.143   879  1124 I WindowManager: Screen frozen for +566ms due to Window{7ca9088 u0 com.android.systemui.ImageWallpaper}
    179. 05-04 16:20:54.154  1242  1242 W StatusBar/NavBarView: *** Invalid layout in navigation bar (sizeChanged this=1080x126 cur=1038x126)
    180. 05-04 16:20:54.207  2251  2409 W OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
    181. 05-04 16:20:54.207  2251  2409 W OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
    182. 05-04 16:20:56.499   879   930 I zygote64: Explicit concurrent copying GC freed 18001(1213KB) AllocSpace objects, 19(1380KB) LOS objects, 42% free, 19MB/33MB, paused 511us total 344.233ms
    183. 05-04 16:20:56.558  2123 10204 I WorkController: WorkProxy is not enqueued because WorkController is disposed
    184. 05-04 16:20:56.558  2123 10204 I chatty  : uid=10045(com.google.android.googlequicksearchbox) NonUserFacing13 identical 2 lines
    185. 05-04 16:20:56.559  2123 10204 I WorkController: WorkProxy is not enqueued because WorkController is disposed
    186. 05-04 16:20:56.591  2089 10386 E ctxmgr  : [AppIntervalImpl]closeInterval: ongoing
    187. 05-04 16:20:56.628  2089  2852 I Places  : ?: PlacesBleScanner stop()
    188. 05-04 16:20:56.638  2089  2089 I BeaconBle: ZERO_POWER is disabled.
    189. 05-04 16:20:56.638  2089  2089 I BeaconBle: 'L' hardware scan: scan stopped, no powered clients
    190. 05-04 16:20:56.638  2089  2089 I BeaconBle: Places requested to stop scan
    191. 05-04 16:20:56.638  2089  2089 I BeaconBle: Scan canceled successfully.
    192. 05-04 16:20:56.648  2089  2852 I PlaceInferenceEngine: [anon] Changed inference mode: 0
     
  7. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,014
    Hi @arlevi09,
    Please try uninstalling the application completely.
    If this doesn't help, please submit a bug report.
     
  8. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Uninstalling completely actually fixed the instant crash issue! But now the app is having trouble loading DLLs:

    Code (CSharp):
    1. 05-09 09:02:44.841  7455  7484 E Unity   : DllNotFoundException: Unable to load DLL 'arcore_unity_api': The specified module could not be found.
    2. 05-09 09:02:44.841  7455  7484 E Unity   :   at GoogleARCoreInternal.LifecycleManager+ExternApi.ArCoreUnity_setArPrestoInitialized (GoogleARCoreInternal.LifecycleManager+EarlyUpdateCallback onEarlyUpdate) [0x00000] in <00000000000000000000000000000000>:0
    3. 05-09 09:02:44.841  7455  7484 E Unity   :   at GoogleARCoreInternal.LifecycleManager._Initialize () [0x00000] in <00000000000000000000000000000000>:0
    4. 05-09 09:02:44.841  7455  7484 E Unity   :   at GoogleARCoreInternal.LifecycleManager..cctor () [0x00000] in <00000000000000000000000000000000>:0
    5. 05-09 09:02:44.841  7455  7484 E Unity   :   at GoogleARCore.Session.CheckApkAvailability () [0x00000] in <00000000000000000000000000000000>:0
    I've tried changing the targeted CPU to ARM64 under the DLL Platform settings, but it did not help.
     
  9. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    ARCore libraries with 64-bit support are coming.
     
    hungrybelome likes this.
  10. sbdevelopment

    sbdevelopment

    Joined:
    May 9, 2018
    Posts:
    1
    in which update ??
     
  11. aobjects

    aobjects

    Joined:
    Jan 16, 2016
    Posts:
    10
    Looks like we may still be having this problem. Cannot build to Android ARm64 with IL2CPP using ARCore without missing the dll. Any updates on this?
     
  12. debasishm2014

    debasishm2014

    Joined:
    Aug 30, 2018
    Posts:
    1
    Does Unity 2018.2.5f1 generate 64 bit version of JNI libs? If not which version and when can we expect this?
     
  13. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    As the first post states, 2018.1 has 64-bit support which is marked as "experimental".
    2018.2 has official (non-experimental) support for 64-bit. Please note that 64-bit supports only IL2CPP.
     
    sandbaydev likes this.
  14. XCVG

    XCVG

    Joined:
    Jun 28, 2017
    Posts:
    7
    Are there plans to also support Mono as a scripting backend in the future, or will Mono be deprecated?
     
  15. Ignas83

    Ignas83

    Unity Technologies

    Joined:
    Mar 26, 2013
    Posts:
    28
    Currently there are no plans to deprecate Mono on Android.
     
  16. XCVG

    XCVG

    Joined:
    Jun 28, 2017
    Posts:
    7
    To clarify, will ARM64 support come to the Mono runtime in the future, or will it be a situation similar to iOS where Mono can only be used for development?
     
    BrainSlugs83 likes this.
  17. Ignas83

    Ignas83

    Unity Technologies

    Joined:
    Mar 26, 2013
    Posts:
    28
    It will likely be similar to iOS :)
     
  18. XCVG

    XCVG

    Joined:
    Jun 28, 2017
    Posts:
    7
    That's a little disappointing, to be honest. I understand the advantages of IL2CPP, and in all fairness what I want to do is an edge case, but I still would have liked to have had practical non-AOT support on Android.
     
    entropicjoey1 likes this.
  19. Ignas83

    Ignas83

    Unity Technologies

    Joined:
    Mar 26, 2013
    Posts:
    28
    Right. I would personally love to see Mono support ARM64 but there are practical reasons why we can't do that.
    With Google Play mandatory requirements for 64-bit support coming next year it's a good idea to start planning for the update path. But in the meantime it's perfectly fine publishing with Mono scripting backend.
     
    BrainSlugs83 and Yury-Habets like this.
  20. Gwl

    Gwl

    Joined:
    Feb 10, 2013
    Posts:
    13
    Will the support for ARM64 in IL2CPP get backported to 2017.4 LTS and if yes, any timeframe for that? We'd rather stay using the LTS release for our upcoming Android release if possible as migrating a large game to 2018.x or later is likely to hit multiple issues along the way.
     
  21. Ignas83

    Ignas83

    Unity Technologies

    Joined:
    Mar 26, 2013
    Posts:
    28
    ARM64 support is coming to 2017.4 LTS. Initial testing has already started, stay tuned for further updates :)
     
    Yury-Habets and Gwl like this.
  22. TigerBooks

    TigerBooks

    Joined:
    Jul 31, 2015
    Posts:
    10
    I recently updated to 2018.3 and so far the ARM64 is working great, but I noticed that Vuforia does not support ARM64. Is that correct? And if yes, is there any information, when it will be supported?
     
  23. Suduckgames

    Suduckgames

    Joined:
    Nov 28, 2016
    Posts:
    218
    Hi there! Google has stated that unity 2017.4 supports 64 bit here : https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

    They also say
    but my apk does.

    So it is really unity 2017.4 supporting right now 64 bits builds? or I am using a library that doesn't have the 64 bit version?

    Sorry if I am asking it on a wrong way. I have never fully understanded how 32 and 64 bits works under the hood

    I am using 2017.4.14f1
     
  24. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Suduckgames likes this.
  25. zwcloud

    zwcloud

    Joined:
    Mar 15, 2016
    Posts:
    377
    upload_2019-1-31_14-43-46.png
    Why targeting ARM64 with Mono scripting backend are not supported? Unity 2018.2.4f1.
     
    BrainSlugs83 likes this.
  26. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    Because the Mono version we are using doesn't support ARM64.
     
  27. zwcloud

    zwcloud

    Joined:
    Mar 15, 2016
    Posts:
    377
  28. Deleted User

    Deleted User

    Guest

    [QUOTE = "zwcloud, post: 4166167, miembro: 1079821"] [ATTACH = full] 367858 [/ ATTACH]
    ¿Por qué no se admite la orientación de ARM64 con el backend de scripts de Mono? Unity 2018.2.4f1. [/ QUOTE]
    es que para usar los 64 bits de ARM necesitas primero cambiar la casilla de mono a IL2CPP para que puedas usarla, por ahora no tengo problemas en unity 2018 con esas opciones pero si cuando compila, tarda muchísimo, Saludos desde México
     
  29. bradweiers

    bradweiers

    Joined:
    Nov 3, 2015
    Posts:
    59
    This is something that you would have to ask the Vuforia team in their developer forums.
     
  30. JohnTube

    JohnTube

    Joined:
    Sep 29, 2014
    Posts:
    66
    Hi, I have made an apk from Unity 2018.2.2f1 using NDK r13b and the player settings required IL2CPP, .Net4, Arm64 only ticked.
    I have checked a filename.so lib file is present in the apk under "lib/arm64-v8a" folder.
    However, I get an exception when trying to call a method from that lib:

    System.DllNotFoundException: Unable to load DLL 'filename': The specified module could not be found.

    Anything I might have missed or did wrong?
     
  31. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    @JohnTube you may be missing a native plugin called libfilename for arm64.
     
  32. JohnTube

    JohnTube

    Joined:
    Sep 29, 2014
    Posts:
    66
    Hi @Yury-Habets
    Thanks for your reply, I forgot to post an update here: the issue is fixed.
    I was using the wrong ".so" file. My bad.
     
    Yury-Habets likes this.
  33. charlie_sbg

    charlie_sbg

    Joined:
    Dec 18, 2016
    Posts:
    13
    Trying 64-bit arm builds for the first time. I have all 3 target architectures set. When the build completes without issue, I expected a lib/arm64-v8a but I only had directories for x86 and 32-bit.

    If I turn off the ARMv7 checkbox, I do get an arm64-v8a dir. My game hangs :) but I get it.

    Is this normal behavior to NOT product a 64-bit dir if 32-bit is on?
     
  34. breban1

    breban1

    Joined:
    Jun 7, 2016
    Posts:
    194
    According to Google:
    https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html
    • Inspect your APK or app bundle for native code. You can check for .so files using APK Analyzer. Identify whether they are built from your own code or are imported by an SDK or library that you are using. If you do not have any .so files in your APK, you are already 64-bit compliant.
    Building for all 3 Architectures in my app (ARMv7, ARM64, x86) in Unity 2017.4.20f1 LTS and I see 3 directories under the 'lib' folder (within the apk):
    arm64-v8a
    armeabi-v7a
    x86

    Each of those folders have 3 .so files in them: libil2cpp.so, libmain.so, and libunity.so. Considering I DO have .so files in my apk, does that mean I'm not 64-bit compliant? Or are these .so files okay? Not quite understanding how this works. Any help would be appreciated!
     
  35. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    You have files in arm64-v8a which are same as in armeabi-v7a, which means your app is 64-bit compliant.
     
    breban1 likes this.
  36. breban1

    breban1

    Joined:
    Jun 7, 2016
    Posts:
    194
    Thanks @Yury-Habets!
     
  37. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    Unity 2017 LTS Android 64bit support is still marked as experimental. When will it be production ready?
     
  38. Tallek

    Tallek

    Joined:
    Apr 21, 2014
    Posts:
    34
    Our game currently supports mods on Android that rely on mono for loading assemblies at runtime. It sounds like that functionality will just be dead with no replacement if we want to push an update to our game after August?
     
    BrainSlugs83 likes this.
  39. tomzigza

    tomzigza

    Joined:
    Aug 4, 2017
    Posts:
    31
    We have an app that is launching this thursday (shameless plug evertale) and we are using armv7 but have never tested on arm64. Adding arm64 in the build would be a pretty drastic change to do so close to launch. I am just curious as to if we loose out on any device compatability by not having arm64, or is arm64 just a better, but newer alternative?

    Is arm64 100% as stable as armv7? Are people including both these days?

    Thanks!
     
  40. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    ARM 64-bit support is expected to be stable in 2017.4LTS.
    Feel free to use it. In an unlikely case of finding a 64-bit specific issue, please report a bug and we'll look into it ASAP.
     
  41. tomzigza

    tomzigza

    Joined:
    Aug 4, 2017
    Posts:
    31
    We are locked into 2018. When is it expected to be safe on that code branch? As long as the answer is well before android requires it for submission I will be happy :)
     
  42. JuliusM

    JuliusM

    Unity Technologies

    Joined:
    Apr 17, 2013
    Posts:
    835
    2018 should not have ARM 64-bit marked as experimental. That means we are considering it to work as expected. Please report any bugs if you'll encounter them.
     
  43. abar

    abar

    Joined:
    Jan 12, 2014
    Posts:
    72
    So I'm trying to update a game that is already released to include arm64 support.
    It builds fine but crashes immediately on start. If I uninstall the old version first, then install the version with arm64 it runs fine, but this is not a workable solution for people that already have the game. Is this a bug in Unity? What should I be doing?
     
    BrainSlugs83 likes this.
  44. abar

    abar

    Joined:
    Jan 12, 2014
    Posts:
    72
    Ok, with a little investigation it seems the crash is due to it trying to load cached binary shaders. If I delete the contents of cache/UnityShaderCache/ inside the data folder of my app (on the device), then the crash doesn't occur as it recompiles all the shaders from source.
    So firstly, is there a way to clear this cache from inside a script? And secondly is there a way to check whether the current running executable is 32 or 64 bit?
     
    BrainSlugs83 likes this.
  45. abar

    abar

    Joined:
    Jan 12, 2014
    Posts:
    72
    To answer my own question again, you can check for 32/64 bit by looking at the size of IntPtr, and you can get the cache directory with Application.temporaryCachePath. Then you can use normal System.IO functions to delete the cached shader files if the previous run of the game had a different value for IntPtr.Size
    This ought to be done by Unity internally of course, and I have no idea what other gotchas might be lurking when updating a 32bit app to 64bit on arbitrary android devices.
     
    BrainSlugs83 likes this.
  46. Yury-Habets

    Yury-Habets

    Unity Technologies

    Joined:
    Nov 18, 2013
    Posts:
    1,167
    @abar this issue has been fixed long ago. Which version of Unity are you using? (@aleksandrk FYI)
     
  47. smithmj5

    smithmj5

    Joined:
    May 24, 2013
    Posts:
    143
    @Yury-Habets

    I'm having the same issue as @abar

    I'm using Unity 2017.4.26f1.

    Auto graphics API is unchecked, and I've got it set to only use OpenGLES2.

    Strip engine code is unchecked.

    Build system is Gradle.

    Previous version of my game was built with Unity 2017.4.26f1, a mono build with support for ARMv7 and x86.

    New version of my game was built with Unity 2017.4.26f1, an IL2CPP build with support for ARMv7, ARM64, and x86, as three separate APKs.

    I have many reports from users where the game won't start, "shows a black screen on startup". I cannot reproduce the issue on any of my test devices. It is only happening to players that had the game installed previously, and updated to this new version. Also of note is that it is only happening to players in the ARM64 APK, the other two APKs are fine (so it doesn't seem like an IL2CPP issue, at least not for the 32-bit APKs).

    I had a player uninstall the game, and reinstall the game, and that fixed the issue (although is obviously a terrible solution!).

    I'm currently waiting to hear back from two players, who I have asked to try deleting the UnityShaderCache directory to see if that fixes the issue. I will post here again when I have confirmation from them.

    I am seeing crash reports in the Google Play dashboard like this:

    Code (CSharp):
    1. java.lang.Error: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0000007e16166000
    2. Build fingerprint: 'HUAWEI/DUB-LX1/HWDUB-Q:8.1.0/HUAWEIDUB-LX1/135(C432):user/release-keys'
    3. Revision: '0'
    4. pid: 16702, tid: 16732, name: UnityGfxDeviceW  >>> org.ironhorsegames.taptapdig <<<
    5. x0   0000257215960000  x1   0000000000000000  x2   0000007e15960000  x3   0000007e15960250
    6. x4   0000000000000004  x5   0000007e15960ab4  x6   00000000000024e4  x7   0000007e159624e4
    7. x8   0000000000000001  x9   0000007e054ff7c8  x10  0000007e15960a70  x11  0000000000000ab4
    8. x12  0000000000000001  x13  0000007e15960ab4  x14  0000007e15960001  x15  0000000000806000
    9. x16  0706277f38ab3305  x17  0000000000000000  x18  0000007e16166000  x19  0000007e1cca1e00
    10. x20  0000007e05f83300  x21  0000007e1cd37d64  x22  0000007e15960000  x23  0000000000000000
    11. x24  0000007e15960070  x25  0000007e054ff7c8  x26  0000000000000000  x27  0000000000000000
    12. x28  0000000000000130  x29  0000000000000078  x30  0000007e1a126778
    13. sp   0000007e054ff550  pc   0000007e1a1269e0  pstate 0000000020000000
    14.   at libunity.0033bde8 (Native Method)
    15.   at libunity.00360054 (Native Method)
    16.   at app_process64.000034d4 (Native Method)
    17.   at [vdso].__kernel_rt_sigreturn (__kernel_rt_sigreturn)
    18.   at libllvm-glnext.00a039e0 (Native Method)
    19.   at libllvm-glnext.0093ca5c (Native Method)
    20.   at .libllvm
    21.   at libGLESv2_adreno.EsxShaderCompiler
    22.   at libGLESv2_adreno.EsxProgram
    23.   at libGLESv2_adreno.EsxContext
    24.   at libunity.00586cc0 (Native Method)
    25.   at libunity.00585750 (Native Method)
    26.   at libunity.00584b24 (Native Method)
    27.   at libunity.00583d94 (Native Method)
    28.   at libunity.00552688 (Native Method)
    29.   at libunity.005923d4 (Native Method)
    30.   at libunity.005a95d4 (Native Method)
    31.   at libunity.005aac70 (Native Method)
    32.   at libunity.005a337c (Native Method)
    33.   at libunity.008f5494 (Native Method)
    34.   at libc.00077ea0 (Native Method)
    35.   at libc.0001f6c4 (Native Method)
    and reports in Unity Crash Reporting like this:

    Code (CSharp):
    1. Thread 0 (crashed)
    2. 0   libunity.so                        0x0000007f714d75a0 AndroidNativeCrashReportHandler::SignalHandler(int, siginfo*, void*)
    3. 1   libunity.so                        0x0000007f714e4be0 NativeRuntimeException::signal_handler(int, siginfo*, void*)
    4. 2   app_process64                      0x0000005595058a58 <symbols missing for uuid: 233268d8e130b8e739e7f70020672f03>
    5. 3   libart.so                          0x0000007f8df8b308 <symbols missing for uuid: 5eeac820b1df392124b814717fca60d0>
    6. 4   [vdso]                             0x0000007f922f24e0 <unknown>
    7. 5   libmonochrome_base.so              0x0000007f79f973fc <unknown>
    which is strange because I have definitely uploaded all symbols from the build, as well as the IL2CPP symbols from the version of Unity that I'm using (to Unity Crash Reporting symbol manager).

    I'll create a bug report for this issue as well.
     
    Last edited: May 26, 2019
    BrainSlugs83 likes this.
  48. smithmj5

    smithmj5

    Joined:
    May 24, 2013
    Posts:
    143
    @Yury-Habets @aleksandrk

    Tonight I have had three separate players confirm for me that using the Android app "Solid Explorer", to manually delete the directory UnityShaderCache in the cache directory of my game, fixes the issue.

    To sum up:

    Using Unity 2017.4.26f1, players that were previously using an ARMv7 mono build, and try to upgrade to an IL2CPP ARM64 build, the game goes to a black screen on startup and doesn't work, due to the data in the UnityShaderCache directory.

    Those players made no other changes, and deleted no other files or folders. They simply removed UnityShaderCache.

    Where else should I report this issue?

    In the meantime, is there a way for me to manually clear the UnityShaderCache directory when the game starts? I suspect that the black screen issue/crash is happening before any of my C# code could execute.
     
    BrainSlugs83 likes this.
  49. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,014
    Hi!
    It looks like the fix for this hasn't been backported to 2017.4. It's on its way, I'll post here when it lands.
    It should be there soon :)
    I don't think so.
     
    BrainSlugs83 likes this.
  50. smithmj5

    smithmj5

    Joined:
    May 24, 2013
    Posts:
    143
    @aleksandrk

    Do you have an estimate of when the fix will be available?

    I've got a lot of unhappy players with a broken game right now, and the game's rating is going down because of it. I only rolled the update out to a very small percent of players, and I halted the rollout after I realized the severity of the issue, but hundreds of players were already affected.

    If there's any other short-term fix you can think of in the mean time, I would really appreciate it.
     
    BrainSlugs83 likes this.