Crash on some Android devices with mobile HDR

On LG G pro, turn on mobile HDR option cause crashes. I tried SunTemple example, but it crahses too.

Without mobile HDR, it works. I assume there’s some bug in shader code in UE4 that testing HDR mosaic.

Currently using UE 4.11.2. Here’s some adb log.

D/UE4     (15691): [2016.05.18-02.20.07:636][  0]LogRHI:Display: Testing for shader compiler compatibility
D/UE4     (15691): [2016.05.18-02.20.07:636][  0]LogRHI:Display: Shaders compile fine no need to enable hacks
D/UE4     (15691): [2016.05.18-02.20.07:636][  0]LogRHI:Display: Testing for gl_FragCoord requiring a varying since mosaic is enabled
D/UE4     (15691): [2016.05.18-02.20.07:636][  0]LogEngine:Error:
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so![Unknown]()
D/UE4     (15691): libsc-a3xx.so!__compile_shader_source()
D/UE4     (15691): libGLESv2_adreno200.so!qgl2DrvAPI_glCompileShader()
D/UE4     (15691): libGLESv2_adreno200.so!glCompileShader()
D/UE4     (15691): libUE4.so!TOpenGLShader<FRHIVertexShader, 35633u, (EShaderFrequency)0>* CompileOpenGLShader<TOpenGLShader<FRHIVertexShader, 35633u, (EShaderFrequency)0> >(TArray<unsigned char, FDefaultAllocator> const&)
D/UE4     (15691): libUE4.so!FOpenGLDynamicRHI::RHICreateVertexShader(TArray<unsigned char, FDefaultAllocator> const&)
D/UE4     (15691): libUE4.so!FOpenGLDynamicRHI::Init()
D/UE4     (15691): libUE4.so!RHIInit(bool)
D/UE4     (15691): libUE4.so!FEngineLoop::PreInit(wchar_t const*)
D/UE4     (15691): libUE4.so!FEngineLoop::PreInit(int, wchar_t**, wchar_t const*)
D/UE4     (15691): libUE4.so!AndroidMain(android_app*)
D/UE4     (15691): libUE4.so!android_main()
D/UE4     (15691): libUE4.so![Unknown]()
D/UE4     (15691): libc.so!__thread_entry()
D/UE4     (15691): libc.so!pthread_create()
F/libc    (15691): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 15722

Thanks for any information!

Hey Cathei,

  • Which version of the engine are you working out of, source or binary?
  • What is your LG G Pro’s Android version?
  • Have you attempted to launch Sun Temple with Mobile HDR on to any other device? If so, did it crash? Can I have those logs?

Looking forward to hearing back from you, thanks!

Okay! Here we go.

  • Engine Version: 4.11.2, Binary from Epic Launcher.
  • LG G Pro’s Android Version: 4.1.2
  • I’ve tried my project and Sun Temple on some devices and
  • Succeed: iOS Devices, LG G2, Samsung Galaxy Note 4
  • Failed: LG G Pro, LG Optimus LTE 2

LTE 2’s Log was same as G Pro’s. And I got this suspicious line from that devices. I missed it in posting.

E/Adreno200-SC(12530): <CPPErrorToInfoLog:766>: GLSL line 6: Error:  Invalid Directive ve

Hey Cathei,

So we do not have the exact device that you’re working on, but I did test two devices that are similar. Mobile HDR does not work with their GPU, which is why they keep crashing. Some projects are too heavy to run on these older devices. If you’re trying to make a game that’s similar to SunTemple, I would suggest pushing the project to a device that is a bit more powerful.

I ran SunTemple without any trouble, using Mobile HDR in the rendering settings on a . The other devices I tested with had trouble, as they were very similar to what you’re using. I tested on the LG G2 which could not run Mobile HDR and the Samsung Galaxy Express which also could not run Mobile HDR.

Command terminated by signal (11: SIGSEGV)" SIGSEGV Means that you just got a segmentation fault, which in turn means that you tried to access memory that you shouldn’t have.

[Documentation: Performance on Mobile Devices][1]

Performance Guidelines for Mobile Devices in Unreal Engine | Unreal Engine 5.1 Documentation

Yes, I know more powerful devices are needed for full performance.
But games are should run on older devices. Maybe without HDR, but not just crashing.

And by the way, SIGSEV is not caused by me, traceback says it’s from CompileOpenGLShader function which is UE4 code.

  • If crash is intended, I assume there is no way to modify r.MobileHDR in DeviceProfile.ini or in-game. So do I need to give up Mobile HDR for support those older devices?
  • If crash is not intended, well… let me know the way to monitor progress of fix.

Thanks for helping!

If you would like projects to run on lower spec devices, you’ll need to make the them use less memory. You’ll have to create a project to be lower spec. Sun Temple even states in the description it works best on high-end mobile devices and supports Oculus Rift.

If you wish to modify the device profiles, in the editor, go to: Windows > Developer Tools > Device Profiles and then modify your profiles there. Make sure that you save them.