Forum Discussion
SaltedSlug
6 months agoExplorer
UE 5.5.1 v74 - Oculus Quest 3 not generating the PSO .upipelinecache file
We are using the Meta Fork of UE, 5.5.1 v74. I've followed through every single piece of online documentation I could find on how to get the PSO cache to work on the Quest 3. Nothing works. No pip...
- 6 months ago
After much digging, I've figured it out. There is an Vulkan setting that needs to be turned on to enable the legacy bundling method.
r.Vulkan.EnablePSOFileCacheWhenPrecachingActive=1
With this on, the CollectedPSOs folder does get created along with the upipelinecache file. This flag works in both 5.5.3 as well as 5.5.1.
SaltedSlug
6 months agoExplorer
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.
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 bytesI'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!
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 6 years ago
- 9 months ago