I am developing an Android mobile game using URP. In my Player Settings, both OpenGL ES3 and Vulkan are enabled. On the Xiaomi Mi 9 SE, the game runs fine until a VFX Graph is rendered, at which point it freezes for ~30 seconds and then crashes. Android logcat shows no useful error messages.
If I disable Vulkan entirely, the game runs perfectly. However, I don’t want to disable Vulkan for all devices, as it provides performance benefits on many modern devices. Although the Xiaomi Mi 9 SE supports Vulkan, it seems unstable when using VFX Graphs.
My questions:
- Is there a way to selectively enable or disable Vulkan per device?
- If runtime switching isn’t possible, is generating separate APKs the recommended approach?
- How can I configure builds to distribute Vulkan-enabled APKs to compatible devices while using OpenGL for problematic devices?
Any guidance on best practices for handling Vulkan compatibility with URP and VFX Graph on Android would be greatly appreciated.
Thank you!