Emulated Uniform Buffers explanation from the Fortnite on Android Launch Technical Blog

After reading this very interesting recent blogpost from Epic: https://www.epicgames.com/fortnite/en-US/news/fortnite-on-android-launch-technical-blog

I was wondering about the mentioned: “Emulated Uniform Buffers” code path that is mentioned there that gave a big performance saving for Fortnite on Android devices.

Does anyone know how to use this? If it’s not something that can be simply “enabled” with OpenGL then it would be great to see a little example project of how to implement it?

OpenGL ES2 and Vulkan use this path by default. OpenGL ES31 by default uses real uniform buffers, and we have added a CVar to switch it to eUB path which can be overridden per project. This change will come in next release 4.21.

Basically, the one GPU feature that was supposed to make things faster was actually much slower because the mobile GPU vendors actually emulate it on their drivers instead of implementing it correctly.

Here is the post for it: Unreal Engine 4.21 Released - Unreal Engine. Make sure to set it in your DefaultEngine.ini file. If you set via DeviceProfiles, rendering will break. The engine needs to have it on to generate the correct shader permutations before sending them to the Android device.