As stupid as it might sound, we are getting incrementally worse performance for our GearVR app on Samsung Galaxy devices. s6 performs the best at ~60fps, s7 at ~57-60 and s8 at ~25-30. We've tried unity versions 5.6.0f3 and 5.5.1f1 with similar results. We have also tried Oculus Utilities v1.13.0 and v1.14.0. Has anyone else faced similar issues?
The profiler shows substantially high amount of time for Camera.Render for s8(~12ms) than s7(~3-4fps).
you mean "s7(~3-4ms)"? can you share your test devices's model number ( like SM-G955F etc) in case it is CPU/GPU related ? btw, it will be helpful if you can share your test project as well
Thank you for the quick turnaround. The model number is SM-G950U. I will not be able to send a test project as 1. it's very huge; 2. The project is proprietary.
If it helps, I can paste profiler screenshot or try making a sample project which would be as close to the current one as possible.
Yes, I meant s7(~3-4ms), sorry! By the way, an empty project runs at ~45fps straight and sometimes drops to ~2-3ms. Here is the profiler log from the phone for an empty scene.
Just an update, here's the profiler output for the same empty scene with the same settings on a galaxy s7. Check out the Camera.render time on both the images.
Ye, a sample project will be helpful too, btw, it looks like a FIFO schedule issue we saw before, can you try to attach the FIFO-SCH.cs I send on to a gameObject in your scene, then test it again?.
I am trying to get a demo project for you. In the meantime, the first profiler screenshot is literally an empty scene built with Unity5.6.0f3 and oculus utilities 1.14.0, which should be fairly simple to replicate on your end.
[EDIT: DELETED PROJECT BECAUSE OF A PLUGIN DEPENDENCY]
Hi,
Please find attached a sample unity project built with Unity 5.5.1f1, Oculus Utilities 1.14.0.
There are three scenes in the _scenes folder: 1. emptyscene.unity - This is a completely empty scene. 2. emptyscene_FIFO.unity - This is an empty scene with FIFO_SCH.cs attached to the MainCamera 3. sample_scene.unity - This is the closest replica of what our scene looks like. For ownership reasons, I won't be able to share the actual scene with you but I can say that the contents of the scrollview are dynamically loaded and this panel does most of the heavy-lifting for the app. There are other features in the app, but I don't think they would matter for the current case.
S8 Qualcomm performance is bad constantly, S7 QualComm has some random results ( jumping from bad to good ). all MALI phone don't have such issues ( tested on S6 + S8 ), I'm going to dig into it and contact with Unity,
Actually, I checked your sample project configuration, found "Multithreaded Rendering" was disabled, I enabled it and test again, seems most frames is above 60 FPS now despite some spikes,
Can you test it to see if this help your situation?
We're running into what looks like the same issue with WaitForGPU taking up way more than it should on Galaxy S7 (haven't tested on Galaxy S8), but I verified we do have multithreaded rendering enabled. The FIFO script actually makes it a little bit worse. We're locked at 60 FPS on Note 4, S6, and Note 5, but dipping into the 30-45 FPS range on S7 in some spots.
See the attached images of profiler output from Unity 5.6.1.
Galaxy S7:
Galaxy Note 5:
We have a build live on the store made with Unity 5.3 that does not exhibit this issue (we launched about a year ago, and we're trying to add Gear VR Controller support to the game).