Level streaming crashes on Android

Hi,

I have a main level with two sublevels. The main level contains all assets; the sublevels contain other light sources and a single mesh, which are intended to change the lighting conditions in the main level. One of these sublevels is loaded in when the main level is first entered. This functions as intended on PC, but not on Android. When attempting to load and unload sublevels, Android crashes instantly.

The bug report created by the device:


Build fingerprint: ‘Xiaomi/hydrogen/hydrogen:6.0.1/MMB29M/V8.1.4.0.MBCMIDI:user/release-keys’
Revision: ‘0’
ABI: ‘arm64’
pid: 15094, tid: 15213, name: RenderThread 1 >>> com.YourCompany.MAINMENU <<<
signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x280000004d
x0 000000559eec2990 x1 0000007f91952f9c x2 000000559f08f688 x3 000000559dc1ede0
x4 000000559ef7b1b0 x5 0000000000000001 x6 0000000000000001 x7 0000007f7f8dc500
x8 000000280000004d x9 0000000000000000 x10 0000000041a00000 x11 0000000000000000
x12 0000000000004001 x13 0000000000000000 x14 0000000000000001 x15 0000000044115550
x16 0000007f957f2180 x17 0000007faf59f210 x18 0000007faf5e6000 x19 0000007f7f8db8c0
x20 0000000000000001 x21 000000559ef7b1b0 x22 0000002800000045 x23 5c6cff20adebdc76
x24 000000559ee9e950 x25 0000005598c581a0 x26 5c6cff20adebdc76 x27 0023940000007b63
x28 0000000000230400 x29 0000007f7f8db890 x30 0000007f92eaa560
sp 0000007f7f8db720 pc 0000007f92eaa5ec pstate 0000000060000000

backtrace:
#00 pc 000000000427b5ec /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_Z32GetPrecomputedLightingParametersN16ERHIFeatureLevel4TypeER30FPrecomputedLightingParametersPK22FIndirectLightingCachePK32FIndirectLightingCacheAllocationPK20FLightCacheInterface+680)
#01 pc 000000000427c0e0 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_Z38CreatePrecomputedLightingUniformBuffer19EUniformBufferUsageN16ERHIFeatureLevel4TypeEPK22FIndirectLightingCachePK32FIndirectLightingCacheAllocationPK20FLightCacheInterface+508)
#02 pc 0000000003f51b7c /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN19FPrimitiveSceneInfo31UpdatePrecomputedLightingBufferEv+740)
#03 pc 0000000004012fb4 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN14FSceneRenderer41UpdatePrimitivePrecomputedLightingBuffersEv+620)
#04 pc 000000000430bf9c /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN20FMobileSceneRenderer9InitViewsER24FRHICommandListImmediate+948)
#05 pc 000000000430cce8 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN20FMobileSceneRenderer6RenderER24FRHICommandListImmediate+600)
#06 pc 00000000040156cc /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so
#07 pc 00000000040625dc /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so
#08 pc 000000000206f624 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN16FNamedTaskThread23ProcessTasksNamedThreadEib+6584)
#09 pc 000000000206d688 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN16FNamedTaskThread21ProcessTasksUntilQuitEi+172)
#10 pc 0000000003e988d0 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_Z19RenderingThreadMainP6FEvent+240)
#11 pc 0000000003ea2d6c /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN16FRenderingThread3RunEv+24)
#12 pc 00000000020d4ee0 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN22FRunnableThreadPThread3RunEv+264)
#13 pc 0000000002069398 /data/app/com.YourCompany.MAINMENU-2/lib/arm64/libUE4.so (_ZN22FRunnableThreadPThread11_ThreadProcEPv+176)
#14 pc 0000000000067754 /system/lib64/libc.so (_ZL15__pthread_startPv+52)
#15 pc 000000000001c644 /system/lib64/libc.so (__start_thread+16)

And the level switching:

Example stream level:

I have tried changing the order of loads or blocking,etc. In the course of testing I have also experienced erratic behavior where the streaming will work a few times on Android before crashing erratically.

Hi,

So far I’ve not been able to reproduce this issue you’re seeing. I setup my level changes on a loop and had them go through the paces about 30 times without any issue. Seeing that you do point out that it works a few times before crashing I think I’ll need the following information in order to proceed listed below. I tested on a Nexus 5 running Android 6.0.1, so it’s likely that it could be device related. If I’m not able to reproduce on a similar device that we have here I may request a sample project that is known to crash for you and see if I can get any further.

  • The model number of the device you’re testing with.
  • Full log using for gather this information. (see below if you’re not familiar with how to do this)
  • Is this only happening in this project or any project that you’ve setup? If it’s only in your project, see if you can reliably reproduce in another project and add any addtional info.

Use the following info to get the logs from the Android Device.

  • Using Android Monitor App.
  • Go to C:\android-sdk-windows\tools
  • run the Monitor.bat file
  • Setup a new filter so that you only see the UE4 log issue. Use the “By Log Tag” and put in UE4|Debug
  • Connect your device to your PC (you’ll need to have the Android in Developer Mode for the GearVR services so that you don’t need the headset)
  • Run the app and get the crash to happen.
  • Save the logs and upload here in a text file

Thank you!

Tim

The model number I’m testing on is just a MI MAX running Android MIUI Global 8.1 with Android version 6.0.1 MMB29M.

Attached is the log from a barebones project - I created a level with a single box, and used the other levels as lighting scenarios, which contain point lights, spotlights, a post process volume, a static mesh actor, a lightmass importance volume, and a directional light. This still crashes.
link text

Hi, an update: Also crashes on a Galaxy S6, with a similar level streaming setup.
Log

Hello thespeech,

We haven’t been able to reproduce this issue but we would like to continue looking into it. Would it be possible for you to provide a small project that reproduces this so that we can be sure that we’re testing the same environment?

Sure, I’ll strip down the project with the problem and send it over.

Hi, unfortunately (or fortunately), I have not been able to replicate the bug on 4.15 - the same project that threw the error now runs perfectly fine on the S6 and Mi Max. I must admit that we didn’t try this initially with 4.15 because we caved after the crash and built two seperate levels with dynamic lighting for day/night toggling. I have attached a link to a barebones project using the same lighting scenario nevertheless. One thing I would like to enquire is whether the Unbuilt Lighting message that flashes briefly when changing lighting scenarios is of concern.

Barebones

Thank you for the project. I’m glad to hear that the original problem isn’t happening in 4.15. I’ve taken a look at the project due to your other concern and I would say that this message being shown while the lighting is loaded is expected. In a shipping configuration, the message would never show so it would never be noticeable and there don’t seem to be any lighting errors to note.