Hey team,
On our in development title, we’re seeing an intermittent crash on launch on Android in the vulkan pipeline - on the same device, sometimes it will crash on launch, sometimes it will work fine - so feels like a potential race condition?
I don’t really have much more context than that, just reaching out to see if this is a known issue - or if not, what steps we can take to provide better information toward getting this fixed.
The game loads into an empty level on startup, and we’re not actively doing our own PSO precaching, we’re close to an out of the box experience with the engine from a rendering standpoint (I say close because we have been working on this project since Unreal 5.3, so we may have some outdated settings)
The crash occurs on a wide range of devices, but is most prevalent on Adreno devices in our crash reporting - however, it should be noted that this may just be a symptom of more of our test devices and closed testing users happening to be onAdreno devices, may not actually reflect it actually being more likely to occur on Adreno devices
The list of devices we see this on (In order of crash report count) is:
Xiaomi MI 9
Galaxy A73 (SM-a736B)
Galaxy Tab S9 ultra (SM-x910)
Galaxy Z fold7 (SC-56f)
Galaxy S21 (SM-G991B)
Galaxy Z Flip6 (SM-F741B)
Pixel 9 Pro
Galaxy Z Fold7 (SM-f966B)
Galaxy S22+ (SM-S906E)
Pixel 8a
I did include a callstack in the callstack section, but it doesn’t seem to be visible accessible, and this report, without that, is impossible for you to help on, so here’s the crash callstack:
vulkan.adreno qglinternal::vkCmdBindPipeline
libUnreal FVulkanGraphicsPipelineState::Bind (VulkanPipeline.h:752)
libUnreal FVulkanPendingGfxState::Bind (VulkanPendingState.h:237)
libUnreal FVulkanCommandListContext::RHISetGraphicsPipelineState (VulkanPipelineState.cpp:585)
libUnreal FRHICommandSetGraphicsPipelineState::Execute (RHICommandListCommandExecutes.inl:215)
libUnreal FRHICommand<T>::ExecuteAndDestruct (RHICommandList.h:1620)
libUnreal FRHICommandListBase::Execute (RHICommandList.cpp:547)
libUnreal FRHICommandListExecutor::FTranslateState::Translate (RHICommandList.cpp:1097)
libUnreal FRHICommandListExecutor::FSubmitState::Dispatch::lambda::operator() (RHICommandList.cpp:1048)
libUnreal Invoke<T> (Invoke.h:47)
libUnreal UE::Core::Private::Function::TFunctionRefCaller<T>::Call (Function.h:292)
libUnreal UE::Core::Private::Function::TFunctionRefBase<T>::operator() (Function.h:414)
libUnreal FRHICommandListExecutor::FTaskPipe::Execute (RHICommandList.cpp:742)
libUnreal UE::Core::Private::Function::TFunctionRefBase<T>::operator() (Function.h:414)
libUnreal TFunctionGraphTaskImpl<T>::DoTaskImpl (TaskGraphInterfaces.h:1113)
libUnreal TFunctionGraphTaskImpl<T>::DoTask (TaskGraphInterfaces.h:1094)
libUnreal TGraphTask<T>::ExecuteTask (TaskGraphInterfaces.h:696)
libUnreal UE::Tasks::Private::FTaskBase::TryExecuteTask (TaskPrivate.h:518)
libUnreal FBaseGraphTask::Execute (TaskGraphInterfaces.h:495)
libUnreal FNamedTaskThread::ProcessTasksNamedThread (TaskGraph.cpp:791)
libUnreal FNamedTaskThread::ProcessTasksUntilQuit (TaskGraph.cpp:679)
libUnreal FRHIThread::Run (RenderingThread.cpp:212)
libUnreal FRunnableThreadPThread::Run (PThreadRunnableThread.cpp:25)
libUnreal FRunnableThreadPThread::_ThreadProc (PThreadRunnableThread.h:187)
Hi Darcy,
The stack alone is unfortunately insufficient to diagnose the issue. Do you happen to have device logs? Do you have local repro of the issue?
Best regards.
Hi Darcy,
Can you try running your application with -gpuvalidation and see if the log reports additional details about the error? Additionally, does running with -onethread completely alleviate the issue?
Best regards.
Hey, I do have a device log, but it contains a tonne of information that I wouldn’t want to share on a public post, can we convert this to a confidential post, or can I DM you the log?
I made it a community post initially, as I want any learnings to be available to everybody else, but providing this level of debugging information potentially exposes more than I’d like