Assertion failed: UniformBufferRHI.GetReference()

android app randomly crashes with below callstack.

engine version : 4.14.1
device : SM-G930K (samsung galaxy s7)

============================= CALLSTACK =============================

Assertion failed: UniformBufferRHI.GetReference() [File:d:/UnrealEngine/Engine/Source\Runtime/RenderCore/Public/UniformBuffer.h] [Line: 78]     
libUE4.so!FDebug::LogAssertFailedMessage(char const*, char const*, int, wchar_t const*, ...)     
libUE4.so!void SetUniformBufferParameter(FRHICommandList&, FRHIVertexShader*, TShaderUniformBufferParameter const&, TUniformBuffer const&)   
libUE4.so!void FMeshMaterialShader::SetMesh(FRHICommandList&, FRHIVertexShader*, FVertexFactory const*, FSceneView const&, FPrimitiveSceneProxy const*, FMeshBatchElement const&, FMeshDrawingRenderState const&, unsigned int)    
libUE4.so!TMobileBasePassDrawingPolicy::SetMeshRenderState(FRHICommandList&, FViewInfo const&, FPrimitiveSceneProxy const*, FMeshBatch const&, int, bool, FMeshDrawingRenderState const&, TMobileBasePassDrawingPolicy::ElementDataType const&, FMeshDrawingPolicy::ContextDataType) const     
libUE4.so!void FDrawMobileTranslucentMeshAction::Process<0>(FRHICommandList&, FProcessBasePassMeshParameters const&, FUniformLightMapPolicy const&, FLightCacheInterface const* const&) const     
libUE4.so!void ProcessMobileBasePassMesh(FRHICommandList&, FProcessBasePassMeshParameters const&, FDrawMobileTranslucentMeshAction const&)   
libUE4.so!FMobileTranslucencyDrawingPolicyFactory::DrawDynamicMesh(FRHICommandList&, FViewInfo const&, FMobileTranslucencyDrawingPolicyFactory::ContextType, FMeshBatch const&, bool, bool, FPrimitiveSceneProxy const*, FHitProxyId)     
libUE4.so!void FTranslucentPrimSet::DrawPrimitivesForMobile(FRHICommandListImmediate&, FViewInfo const&, FMobileTranslucencyDrawingPolicyFactory::ContextType&) const     
libUE4.so!FMobileSceneRenderer::RenderTranslucency(FRHICommandListImmediate&)     
libUE4.so!FMobileSceneRenderer::Render(FRHICommandListImmediate&)     
libUE4.so![Unknown]()     
libUE4.so![Unknown]()     
libUE4.so!FNamedTaskThread::ProcessTasksNamedThread(int, bool)     
libUE4.so!FNamedTaskThread::ProcessTasksUntilQuit(int)     
libUE4.so!RenderingThreadMain(FEvent*)     
libUE4.so!FRenderingThread::Run()     
libUE4.so!FRunnableThreadPThread::Run() 
libUE4.so!FRunnableThreadPThread::_ThreadProc(void*)

Hello enop_astorm,

I see that you say that it’s randomly occurring but is there any sort of reproduction that you could give? Does this only occur with your project or can you get it to happen in a new one? Does it only happen on a particular map? Have you tried packaging for other Android types such as ETC1, ETC2, ALL and so on? I’ll need some more information to continue looking into this.

  • App is using ‘ETC2’ packaging
  • There is no exact reproduction method.
  • Occurs occasionally in all maps (It occurs 2-3 times per hour)
  • I did not try it on a new project.

I will provide you with more information if you need it.

I apologize for the delay on this, but the only thing I can really tell from the information provided so far is that it’s something rendering related. Is there any other sort of distinctive information you can provide? Have you been able to test on any other phones with different types of GPUs? Does this ever happen when launched to Windows? Please try to reproduce in a new project if you get a chance. Also, please provide the full log from one of the sessions where this crash occurs.

Apologies for the delayed response. I tried updating to a later build, and have not been able to reproduce the issue. I’ll update this thread again if it happens with a logcat and bugreport.