I’m doing some mobile VR (nexus 6P, cartboard-like-device), and I’m strugling to archieve best performance for this particular device (It’s fixed VR experience ONLY for nexus 6P at this moment)
My rendertarget is 2048x1024 (1024x1024 per eye) without any postprocessing (the HMD plugin is similar in overal design to the GearVR one) so basically it boils to:
Bind 2048x1024 RT (RGBA8), set viewport, and do forward rendering of left eye, then switch viewport, do rendering of right eye, then in one single step push this texture into backbuffer & do flip
I wanted to experiment with little higher bit-resolution of the 2048x1024 RT (create it as 11_11_10_RGB) but this needs ES 3.1, so I’v switched to 3.1 (i’m using 4.11.2 from github)
and the performance went waaaaay down … from around 40 - 60 fps, to 5 - 7 fps ?
I didn’t profiled it yet, but I’m suspecting that UE switched back to deferred (I’m right, I do not want this as I do not have any dynamic lights, just static lighting (& some self illuminations for blinking stuff hardcoded in shaders)
So why I switched to ES 3.1 ?
Mainly because the lighting does not look right I want PROPER linear lighting, and as far as I see this could be done only in ES 3.1.
Now the lightmaps in darker areas looks just bad (banding)
Any other ways to archeve linear lighting on this specific phone and maintain desired performance (scene has ~200 batches, ~100k triangles per whole frame)