Hi there! I am currently in the process of optimising my Oculus Go app for Gear VR. On Go my app runs at a silky smooth 72FPS, at 1.5x the standard resolution. Yeah!
When I deploy to Gear VR, using a Galaxy S7, the performance is terrible. Even with a reduction in quality (half-res textures, 1x resolution, no shadows) I can only get 30FPS.
Is there something that I am missing, or is the Go just waaaay more powerful than the S7?
Thanks, @DreamcatcherStudios - I'm using Unity 2018.2 I noticed that if I jack the CPU up to 3 (instead of the default 2) I am getting an extra 10-15FPS... but nothing if I jack the GPU. Could be that I need to do another optimisation pass on my level geo to stamp down draw calls.
I see. In the past I have run into bugs where unity failed to properly ustilize the CPU on the Galaxy s8. It may be worth testing the performance on an empty scene just to have a baseline and rule out any Unity bugs.
I have found the GO to be slightly less performant than a Galaxy S8. It seems odd to me that the Galaxy S7 would be so much slower. Do you happen to know the tri count of your scene?
That's a good tip - I will try that! What do I do if I find Unity is messing up? A quick look at the OVR Profiler in Unity says I have about 265K triangles and 90 draw calls. Does Gear VR do single pass stereo rendering?
That is rather curious, indeed. Your draw call counts look OK, and the high number of triangles should overload the GPU rather than CPU, yet you seem to be seriously CPU bound on the Galaxy S7. Gear VR does single pass stereo, so that should not be the problem. I trust you have used the Unity profiler to check that none of your scripts take extraordinary amount of time.. Do you use physics or colliders or some such that might cause a high CPU hit? You don't have skinned meshes, do you? Skinned meshes with high vertex count might cause something like that, but I haven't used skinned meshes myself, so I am not familiar with their performance.
Working on LineWars VR: http://linewars.patrickaalto.com/LWVR.html
Not that it should explain the difference, but perhaps it might be worth checking/clarifying the the variant of S7 you are using. Is using an Adreno GPU like the Go does in all regions, or does it feature a Mali GPU? (typically S7 models sold outside of the US and China)
This is less about which is better, and more just wondering if this is an apples to apples, or an apples to oranges comparison.
I presume some techniques which might be great on Adreno might be worse on Mali and vice versa.