((This is a translation of a [Japanese [Content removed] by Yoshitaka Hirotoshi).)
After collecting PSO logs with Meta Quest 3, creating a bundled PSO cache, integrating it, and precompiling in Fast mode at startup, a crash occurs on the second launch though on the first launch, it works normally.
The settings in AndroidEngine.ini are as follows:
[ConsoleVariables]
r.ShaderPipelineCache.StartupMode=1
r.Vulkan.EnablePSOFileCacheWhenPrecachingActive=1
[DevOptions.Shaders]
NeedsShaderStableKeys=true
The attached reproduction project was created with the following steps:
a) Create a new VRTemplate project.
b) Add a button to the in-game menu that can execute the console command “r.ShaderPipelineCache.Save”.
c) Put the above AndroidEngine.ini under Config/Android/.
The detailed reproduction steps (including PSO log collection and integration of the bundled PSO cache):
1) Package the attached VRTemplate project for Android.
2) Install it on a Meta Quest 3.
3) With the Quest 3 being ADB-connected, run Build/BatchFiles/RunForCollectPSOs.bat on the Windows machine.
4) When the app launches on the Quest 3, press the menu button on the left side to open the in-game menu.
5) Press the “Save PSO Cache” button in the menu to save the PSO log.
6) Edit Build/BatchFiles/ExpandPSOCaches.bat and set the path to UnrealEditor-Cmd.exe in the “set EDITOR_CMD=” line.
7) With the Quest 3 being ADB-connected, run Build/BatchFiles/ExpandPSOCaches.bat.
8) Exit the game and uninstall the installed app.
9) Package the VRTemplate project for Android again and install it on the Meta Quest 3.
10) Launch the app and confirm that it can run normally.
11) If exiting the app and then launching it again, the crash will be reproduced.
Workaround:
After reproducing the crash in step 11, launching the app again with r.Vulkan.UseChunkedPSOCache=0 prevents the crash from occurring on subsequent launches. If running Build/BatchFiles/RunWithoutChunkedPSOCache.bat, the app will start with this setting.
I am considering precompiling the bundled PSO cache at startup in order to reduce frame drops during the first-time rendering of Niagara effects, etc.
Though I am currently investkigating this, do you think even if using the setting “r.Vulkan.UseChunkedPSOCache=0”, it will still provide the intended effect as a mechanism?
Also, if there are any known bugs or fixes related to this issue, I’d appreciate it if you could share the information.
I guess some related issues may have been fixed in Unreal Engine 5.6, but I use Meta’s customized version of UE 5.5.3 for this project, and that version of UE 5.6 has not been released yet. So, updating to UE 5.6 is currently difficult.
Thank you for your time and help.
[Attachment Removed]