cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus Go Vs Gear VR - how to optimise???

Thunderbox_Ent
Protege
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?

Any help would be much appreciated.

 :'( 

Dan


8 REPLIES 8

DreamcatcherStu
Honored Guest
Are you using unity? If so, what version?

Thunderbox_Ent
Protege
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.

DreamcatcherStu
Honored Guest
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?

Thunderbox_Ent
Protege
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?

PAalto
Expert Protege
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

bkj
Adventurer
@"Thunderbox.Ent" Are you sure you are running 256K poligons + 90 draw calls at 72Hz on Oculus Go?

treeviewstudios
Protege
Dont forget to follow this guide @"Thunderbox.Ent"

https://developer.oculus.com/blog/tech-note-unity-settings-for-mobile-vr/

Also you could try building with IL2CPP instead of Mono.
Optimize by using LOD , maybe mesh combining might help, and dont forget lightning settings.

Wouldnt hurt to take a look at that 

nat42
Explorer
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.