Hi Vitalii,
Thanks for the recommendation. However, the command you provided does launch the app, it did not set the logPSO flag as a parameter. The UnrealAndroidFileTool continues to work. I verified in the log file that the logPSO command is getting set.
This time though, I did notice that there is an Ensure being hit while playing. It looks suspect. Not sure how I missed this when I first posted. I wonder if there are settings in the new method that are stomping the old legacy.
[2025.06.16-20.24.12:723][ 0]LogStats: FPlatformStackWalk::StackWalkAndDump - 0.068 s
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: === Handled ensure: ===
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error:
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: Ensure condition failed: oldValue == newValue [File:./Runtime/Core/Private/HAL/ThreadingBase.cpp] [Line: 318]
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: oldValue(1) newValue(0) If this check fails make sure that there is a FTaskTagScope(ETaskTag::EParallelRenderingThread) as deep as possible on the current callstack, you can see the current value in ActiveNamedThreads(40000002), GRenderingThread(311e9a70)
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: Stack:
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E4EC714 libUnreal.so(0x000000000AD95714)![Unknown]() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E4EC680 libUnreal.so(0x000000000AD95680)!IsInParallelRenderingThread() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007924AAC734 libUnreal.so(0x0000000011355734)!FMaterial::GetRenderingThreadShaderMap() const []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007921FE0D28 libUnreal.so(0x000000000E889D28)!MobileBasePass::GetShaders(ELightMapPolicyType, EMobileLocalLightSetting, int, bool, FMaterial const&, FVertexFactoryType const*, TShaderRefBase<TMobileBasePassVSPolicyParamType<FUniformLightMapPolicy>, FShaderMapPointerTable>&, TShaderRefBase<TMobileBasePassPSPolicyParamType<FUniformLightMapPolicy>, FShaderMapPointerTable>&) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007921FE2C74 libUnreal.so(0x000000000E88BC74)!FMobileBasePassMeshProcessor::CollectPSOInitializersForLMPolicy(FPSOPrecacheVertexFactoryData const&, FMeshPassProcessorRenderState const&, FGraphicsPipelineRenderTargetsInfo const&, FMaterial const&, EMobileLocalLightSetting, unsigned int, ELightMapPolicyType, ERasterizerFillMode, ERasterizerCullMode, EPrimitiveType, TArray<FPSOPrecacheData, TSizedDefaultAllocator<32> >&) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007921FE42D4 libUnreal.so(0x000000000E88D2D4)!FMobileBasePassMeshProcessor::CollectPSOInitializers(FSceneTexturesConfig const&, FMaterial const&, FPSOPrecacheVertexFactoryData const&, FPSOPrecacheParams const&, TArray<FPSOPrecacheData, TSizedDefaultAllocator<32> >&) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007924AB8124 libUnreal.so(0x0000000011361124)!FMaterialShaderMap::CollectPSOPrecacheData(FMaterialPSOPrecacheParams const&) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007924F4D930 libUnreal.so(0x00000000117F6930)!FMaterialPSOPrecacheCollectionTask::DoTask(ENamedThreads::Type, TRefCountPtr<FBaseGraphTask> const&) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007924F6BD6C libUnreal.so(0x0000000011814D6C)!TGraphTask<FMaterialPSOPrecacheCollectionTask>::ExecuteTask() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2F3348 libUnreal.so(0x000000000AB9C348)!UE::Tasks::Private::FTaskBase::TryExecuteTask() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2F2920 libUnreal.so(0x000000000AB9B920)!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 48u>::TTaskDelegateImpl<void LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init(char16_t const*, LowLevelTasks::ETaskPriority, UE::Tasks::EExtendedTaskPriority, UE::Tasks::ETaskFlags)::{lambda()#1}>(char16_t const*, LowLevelTasks::ETaskPriority, UE::Tasks::Private::FTaskBase::Init(char16_t const*, LowLevelTasks::ETaskPriority, UE::Tasks::EExtendedTaskPriority, UE::Tasks::ETaskFlags)::{lambda()#1}&&, LowLevelTasks::ETaskFlags)::{lambda(bool)#1}, false>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 48u>&, void*, unsigned int, bool) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2D31F0 libUnreal.so(0x000000000AB7C1F0)!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask*) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2D50A4 libUnreal.so(0x000000000AB7E0A4)!bool LowLevelTasks::FScheduler::TryExecuteTaskFrom<LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue, &LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue::Dequeue, false>(LowLevelTasks::Private::FWaitEvent*, LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue*, LowLevelTasks::Private::FOutOfWork&, bool) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2D4930 libUnreal.so(0x000000000AB7D930)!LowLevelTasks::FScheduler::WorkerLoop(LowLevelTasks::Private::FWaitEvent*, LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue*, unsigned int, bool) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2D563C libUnreal.so(0x000000000AB7E63C)!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent*, LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue*, unsigned int, bool) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E534038 libUnreal.so(0x000000000ADDD038)!FThreadImpl::Run() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E4E6A18 libUnreal.so(0x000000000AD8FA18)!FRunnableThreadPThread::Run() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x000000791E2F87C4 libUnreal.so(0x000000000ABA17C4)!FRunnableThreadPThread::_ThreadProc(void*) []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007A44721110 libc.so(0x00000000000FD110)![Unknown]() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error: [Callstack] 0x0000007A446B8FB4 libc.so(0x0000000000094FB4)![Unknown]() []
[2025.06.16-20.24.12:723][ 0]LogOutputDevice: Error:
There is a PSO cache file being saved on exit, however, this is not the Pipeline cache that I'm expecting with the legacy bundling procedure...
[2025.06.16-20.24.24:182][669]LogVulkanRHI: Display: FVulkanPipelineStateCacheManager: Saved device pipeline cache file '../../../XXXX/Saved/VulkanPSO.cache.5143.43050b00', 92675 bytes
I'm going to continue experimenting with the new system. Hopefully, I'm able to produce similar results as to what I was expecting with the bundled approach.
Thanks!