Setting "Mobile Preview" to "ES3.1" crashes project and prevents it ever being loaded again!

I’m developing a project on Quest 2 which uses the default ES3.1 platform. I’ve been trying to put together an understanding of how all the jargon in that corner of the project settings fits together so I can make better decisions. One of the first and most harmless seeming things I wanted to try was to change the editor’s preview to match the colors and features I’d expect on my Quest.

Bad idea. Very bad idea.

I followed the simple instructions and changed my Rendering Level to Android ES3.1. After a few moments of loading, Unreal crashed. Send and restart, crash. Quit Unreal entirely and reloaded the project: crash.

I can’t open the project anymore. What sort of mistake have I just made and how do I fix it?

Fatal error:
[Line: 258] Direct3DDevice->CreateVertexShader((void*)CodePtr, CodeSize, nullptr, Shader->Resource.GetInitReference())
   failed at D:/Build/++UE4/Sync/Engine/Source/Runtime/Windows/D3D11RHI/Private/D3D11Shaders.cpp:202 with error E_INVALIDARG

On a related note, what is the primary term for Android ES3.1? I’ve seen it as a mobile platform, rendering level or mode, shader model, feature level, and as the OpenGL version. Is Android Vulkan a replacement or an extension for it? Googling is hard when each page categorizes differently and races off in different directions which get very technical very fast. I see Vulkan mentioned somewhat often, but if it’s a complete top-level decision I need to know whether it’s on the table and why or why not to enable it. “Android Vulkan ES3.1” combines all of the terms which makes them seem like they’re different categories, so I don’t quite what it then means to choose between them.

Ended up fixing this the roundabout way.

I started out making a back up, so definitely do that.

Some useful info from this post.

All of the files within the main project config folder will repopulate with defaults, which in most cases doesn’t require a file at all so most won’t appear unless you poke settings again. The DefaultEngine.ini file in particular holds the settings for MobileHDR and other rendering features which were causing the crashes. I was able to delete out entire chunks of this file (again, make backups) to determine that the Project Settings/Rendering section was where the problem was. I wasn’t able to partially delete within this section, so I couldn’t test deeper.

To fix the problem, I deleted the DefaultEngine.ini file, loaded my project, switched back to the SM5 preview mode, and then closed the project. Finally, I copied my original DefaultEngine.ini file back into the configs folder, overwriting the new one, and reloaded the project.

Knowing how to recover the project, I was able to mess with the settings a little bit to be able to use the feature without crashing. Ended up disabling Mobile Multi-View.

this helped me thank you, ue4 crash when mobile multi view is activated and change preview rendering level to android / ios

Glad you got it fixed. It’s a self-perpetuating crash because the instigation for it is stored in the configs and will happen every time the project loads until you manually end the mismatched settings by deleting or hiding them from the editor.

I just need to remember to try building with Mobile-Multiview enabled later in production, otherwise I’m missing out on it altogether. Just need an hour or so sometime to recompile shaders, build, compare, and decide.

Same here. Came to the conclusion that vr.MobileMultiView=True crashes the editor when Vulkan preview is enabled. If it is enabled and vr.MobileMultiView=False, then the screen is extremely dark. It seems the renderer is broken altogether for mobile (both Vulkan and ES3.1).

This is in UES4.25.