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: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Windows/D3D11RHI/Private/D3D11Util.cpp] [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.