Packaged Android Game asserts on GGlobalShaderMap

Hi Everybody,

I am trying to launch a game that I ported from desktop VR. Works on Daydream, but asserts on GGlobalShaderMap on GearVR with Samsung Galaxy S8:

LogAndroid: Error: === Critical error: ===
LogAndroid: Error:
LogAndroid: Error: Assertion failed: GGlobalShaderMap[Platform] [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\ShaderCore\Private\GlobalShader.cpp] [Line: 215]
LogAndroid: Error:
[Callstack] 0x0000007C69283164 (0x000000000391E164) libUE4.so!StaticFailDebug(char16_t const*, char const*, int, char16_t const*, bool)  []
[Callstack] 0x0000007C69283914 (0x000000000391E914) libUE4.so!FDebug::LogAssertFailedMessageImpl(char const*, char const*, int, char16_t const*, ...)  []
[Callstack] 0x0000007C6A056418 (0x00000000046F1418) libUE4.so!GetGlobalShaderMap(EShaderPlatform)  []
[Callstack] 0x0000007C6B00A9F4 (0x00000000056A59F4) libUE4.so!FBatchedElements::PrepareShaders(FRHICommandList&, FGraphicsPipelineStateInitializer&, ERHIFeatureLevel::Type, ESimpleElementBlendMode, FMatrix const&, bool, FBatchedElementParameters*, FTexture const*, bool, float, FDepthFieldGlowInfo const*, FSceneView const*) const  []
[Callstack] 0x0000007C6B00ED34 (0x00000000056A9D34) libUE4.so!FBatchedElements::Draw(FRHICommandList&, FDrawingPolicyRenderState const&, ERHIFeatureLevel::Type, bool, FSceneView const&, bool, float, EBlendModeFilter::Type) const  []
[Callstack] 0x0000007C6BBD3D80 (0x000000000626ED80) libUE4.so![Unknown]()  []
[Callstack] 0x0000007C6BBD40D8 (0x000000000626F0D8) libUE4.so![Unknown]()  []
[Callstack] 0x0000007C6911B8D8 (0x00000000037B68D8) libUE4.so!FNamedTaskThread::ProcessTasksNamedThread(int, bool)  []
[Callstack] 0x0000007C6911AAA4 (0x00000000037B5AA4) libUE4.so!FNamedTaskThread::ProcessTasksUntilQuit(int)  []
[Callstack] 0x0000007C6A034420 (0x00000000046CF420) libUE4.so!RenderingThreadMain(FEvent*)  []
[Callstack] 0x0000007C6A041B84 (0x00000000046DCB84) libUE4.so!FRenderingThread::Run()  []
[Callstack] 0x0000007C6918C238 (0x0000000003827238) libUE4.so!FRunnableThreadPThread::Run()  []
[Callstack] 0x0000007C69116BA4 (0x00000000037B1BA4) libUE4.so!FRunnableThreadPThread::_ThreadProc(void*)  []
[Callstack] 0x0000007C8F64BE38 (0x000000000006DE38) libc.so![Unknown]()  []
[Callstack] 0x0000007C8F5FD9A8 (0x000000000001F9A8) libc.so![Unknown]()  []

I tried enabling LQ Lightmaps, permutations of GLES2/3.1 and Vulkan, which all didn’t work, or lead to a different error (in permutations with Vulkan enabled).

Any ideas are greatly appreciated. If you need the full log or settings files, I’d be happy to provide those, too.

Cheers,

Can this be related to doing Canvas rendering in some BeginPlay()?
I.e. is the Game Thread able to run ticks before the Render Thread is ready?
(Was not the issue)

Another issue: GLES3.1 preview in Editor appears in Grayscale with the exception of a couple of colored objects (which actually use the same shaders as the ones that are grayscaled)

Normal Maps on those objects work fine, they are just simply grey. Can this be related to texture size? Is there a limit on Android?