Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums will be revoked at the discretion of Oculus staff.
New to the forums? Click here to read the How To guide. -- Developers click here.

Unity Game in GearVR Overheating and Stale Frames

kbramkkbramk Posts: 5
NerveGear
The only time it goes up to 60FPS is on the loading screens.  During gameplay there are a ton of stale frames.  The game is fully playable and though the frame rate is low it's functional, fun, etc...

But to meet the requirements of the samsung gear vr store, this game needs to have 60FPS and not cause the phone to overheat after 15 minutes or so.  I've tried all sorts of different things including but not limited to:

throttling CPU/GPU
enabling/disabling: MSAA, VSync, Occlusion Culling, ...

In the Unity profiler there are minimal spikes but the few that did happen (and they happen very rarely) were:

NavMeshManager.WaitForJobGroup
and
ParticleSystem.EndUpdateAll

The stale frames do stop if I pause the game (game has a pause function) and then it runs smoothly (~60FPS) until something??? happens and the stale frames come back and it runs at 20FPS again.

I think the overheating and the low frame rate might be separate problems but might also be related.  Have been messing around with different builds and different settings for weeks.  Would like to ship this game now.  Please help.

Answers

  • imperativityimperativity Posts: 3,587 Valuable Player
    Hi,

    Welcome to the Oculus Developer Forums.

    Are you familiar with the documentation on this page for analyzing performance of your application?

    Could you share a full screenshot of what the Unity Profiler is finding so I can get a more detailed look into where your GPU and CPU resources are being spent?

    What types of suggestions does the Performance Auditing Tool in Unity recommend when you run it on your app?
  • kbramkkbramk Posts: 5
    NerveGear
    I didn't even know about the performance auditing tool.  that's this right? ovr lint?  i just ran it and posted screenshot of what it showed.  Unity Profiler found nothing outside what I mentioned above.  Maybe there's a way to make the test more sensitive?  Computer is too powerful and everything runs at 1000+ FPS all the time and the few times it wasn't were mentioned in the OP (and this happened for a second at most and then back to 1000 FPS).

    If there's a way to make it so the Unity Profiler shows something, pls let me know and I'll provide that info as well. TIA
  • imperativityimperativity Posts: 3,587 Valuable Player
    @kbramk

    What Unity version are you running?
  • delphinius81delphinius81 Posts: 297
    Nexus 6
    Have you pulled information from adb logcat? Or used the oculus remote monitor?
  • kbramkkbramk Posts: 5
    NerveGear
    Unity 5.6.3p1 @imperativity

    And no i'm not familiar with the oculus remote monitor so I'm reading on it now
  • kbramkkbramk Posts: 5
    NerveGear
    edited November 2017
    Edit: So I applied the changes from the OVR Lint thing and still have the same issues.

    This is what it looks like now.  When I try the 'fix' for Scripting Backend the game no longer builds an APK so I didn't touch that one.  Not sure how to fix the materials.  The guy who worked on all that mysteriously disappeared.
  • imperativityimperativity Posts: 3,587 Valuable Player
    @kbramk

    I have never heard of this type of issue before. This is very strange. What version of oculus software are you using? Would you be able to upgrade to a newer version of Unity by any chance?

    Ideally if I could get the log files from when the build is failing in Unity, that would be a great first step toward addressing this problem. Could you follow the instructions here and let me see the logs it generates?

    https://developer.oculus.com/distribute/latest/concepts/log-troubleshooting/

  • kbramkkbramk Posts: 5
    NerveGear
    I just reverted back to old project settings and applied the fixes as I edited my post after you replied to it. @imperativity

    I tried removing the materials and that got the framerate up but I still had stale frames.  see the screenshot linked in my post above of the OVR Lint.  I don't know how to fix anything past this.  Deleting things helps the problem but with no assets to replace them with it doesn't really help the problem.
  • imperativityimperativity Posts: 3,587 Valuable Player
    @kbramk

    Ok, if possible, can you forward me a copy of this project, or a similar one so I can look into this?
  • dylan.walchdylan.walch Posts: 1
    NerveGear
    Hi @kbramk or @imperativity.
    I am having the same issue when building for the Oculus Go. Was a solution ever found to this issue?
    Thank you for your help!
  • PAaltoPAalto Posts: 56 Oculus Start Member
    Hello Dylan, welcome to the forums!

    Have you made sure your project is simply not too heavy for Oculus Go to run? Use the "Stats" display on Unity Game view, and make sure your Tris and Verts are both less than 100K, your Batches and SetPass calls are both less than 100, you don't use real time shadows, and you use only one real time light. Also make sure you don't use Standard Material anywhere, all materials need to be Mobile versions. I have found best results when not using even the mobile shaders, rather create and optimize every shader I use to have only exactly the features I absolutely need.

    If those are all OK, the next step is to check your scripting. Try disabling heavy scripts, collisions, physics and stuff like that, to see if that helps.

    Oculus Go and Gear VR are rather low-power devices, so many things that run fine on a PC and Rift do not run well on Oculus Go and Gear VR.

    Hope this helps, at least to get you on track for figuring out where the problem might be!

Sign In or Register to comment.