Low performance with Google VR Camera

Hi everyone,

I’m programming a Google VR app for Android with Unity and I notice a performance drop when the app run on smartphone (Samsung Galaxy S6) after a few minute of usage.

Unity version is 5.3.4f1 and the version of Google VR SDK is 1.10.

In my scene there are only an inverse sphere (for 360 photos) and a panel (for info and photos) made with world space canvas, UI panel and buttons. A very simple scene. The only thing I do is download photos from web and apply them on sphere or on panel when I select a button in scene.

I used Profiler to control the app performance and there are no memory leak, because I destroy all the objects that I don’t use anymore. But there is a process, called Graphic.PresentAndSync, that is very expensive for the CPU. In Internet I found these solutions:

  • Force the app to use OpenGL ES2 in Player Setting
  • Select Legacy Vertex Lit value for Rendering Path in Player Setting
  • Disable V Sync Count with Don’t Sync value in Quality Setting

but never is changed.

So I have read all the Unity Optimisation Manuals and I reduced quality settings as suggested here: VR Best Practice - Unity Learn.
Again, never is changed.

But when I tried to use Unity Camera (without stereo rendering) instead of Google VR Camera (with stereo rendering) the performance was fantastic.

Anyone can help me?
Thanks!

make the maincamera a child of an empty then add the GVRviewer as a child of the maincamera