New To The Forum? Click Here To Read The How To Guide. -- Developers Click Here.

Horribly slow fps on galaxy s8

parthdarjiparthdarji Posts: 14
NerveGear
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).

/parth
«1

Answers

  • imperativityimperativity Posts: 1,451 Oculus Staff
    Hi,

    Welcome to the Oculus Forums.

    Thanks for bringing this to our attention. We will look into this issue on our end.
  • JianZJianZ Posts: 59 Oculus Staff
    Hi parthdarji

    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

    Thanks
    -Jian
  • parthdarjiparthdarji Posts: 14
    NerveGear
    Hi JianZ, 

    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.
  • parthdarjiparthdarji Posts: 14
    NerveGear
    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.

  • JianZJianZ Posts: 59 Oculus Staff
    edited May 11
    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?.


  • parthdarjiparthdarji Posts: 14
    NerveGear
    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.

    The FIFO-SCH.cs doesn't seem to change anything.
  • parthdarjiparthdarji Posts: 14
    NerveGear
    edited May 19
    [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.

    HTH.
  • JianZJianZ Posts: 59 Oculus Staff
    FYI update:

    I'm able to repro the issue with 5.6.0p4

    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,  

    will update here for progress
  • JianZJianZ Posts: 59 Oculus Staff
    Hi, 

     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?

  • HoldenTBHoldenTB Posts: 22
    Brain Burst
    edited May 16
    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).
  • parthdarjiparthdarji Posts: 14
    NerveGear
    JianZ said:
    FYI update:

    I'm able to repro the issue with 5.6.0p4

    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,  

    will update here for progress
    Hi,

    The original project I have does have multithreaded rendering enabled and the profiler screenshot is for the same project. I also tried enabling it with similar results. I have to add that I am using a Mac for development. I am trying to port the project over to windows to see if it helps. I will post results here.

    In the meantime, if there is a version which anyone knows works for sure, can they update the details here? We are a little crunched on time wrt store submission.

    /parth
  • JianZJianZ Posts: 59 Oculus Staff
    edited May 17
    Hi Parthdarji

    So far, from my testing,  Unity 5.3 and 5.4 don't have the issue ( I tested  5.3.7p4  and 5.4.3p4 )
    Start from Unity 5.5, the problem start happening.
  • JianZJianZ Posts: 59 Oculus Staff
    edited May 17
    To HoldenTB

    I'm not quite sure if it is the same problem,  the problem Parthdarji described is only on Qualcomm S8 and it is on the CPU side.

    For gpu issue,  we do see GPU regression from 5.3 to 5.4 and 5.5 to 5.6 on MALI phones, which can lead longer gpu wait time,  can you confirm you phone model ?   btw, a repro project is always welcome

    Thanks
  • JianZJianZ Posts: 59 Oculus Staff
    Hey Parthdarji

    I'm able to find the issue.  Unity 5.5/5.6 ( or maybe even later version of 5.4 ) are using new logic to detect big.LITTLE core,  unfortunately, there is a bug , which eventually results unity main thread running on the little core of Qualcomm S8, then more than half of the cpu power is gone.

    I had sent my fix to Unity and asking for a patch, will update here again once we got a release schedule ( should be soon )

    Before that,  probably Unity 5.4.3p4 is a good version  




  • parthdarjiparthdarji Posts: 14
    NerveGear
    JianZ said:
    Hey Parthdarji

    I'm able to find the issue.  Unity 5.5/5.6 ( or maybe even later version of 5.4 ) are using new logic to detect big.LITTLE core,  unfortunately, there is a bug , which eventually results unity main thread running on the little core of Qualcomm S8, then more than half of the cpu power is gone.

    I had sent my fix to Unity and asking for a patch, will update here again once we got a release schedule ( should be soon )

    Before that,  probably Unity 5.4.3p4 is a good version  




    Hi JianZ,

    Thank you very much for helping out with the issue.

    My initial tests suggest that Unity 5.4.3p1 works well on the S8 on the sample project. I am trying to downgrade my project to 5.4.3p1, but it looks like the downgrade would have to be done manually (because of API changes) and before I invest time in doing that, it would be helpful to know an estimate release date for the patch. Do you have a timeline on the release?

    Also, not sure if this would be an unreasonable request, but is it in any way possible to get this version of the update individually before it gets released?

    /parth
  • JianZJianZ Posts: 59 Oculus Staff
    this is up our partner Unity, I had asked them handle this ASAP since this is very serious issue.
    But no eta so far.  My personal estimate would be a few weeks for patch release ( note personal opinion).

    and we have no right to release local compiled version


    thanks

  • parthdarjiparthdarji Posts: 14
    NerveGear
    JianZ said:
    this is up our partner Unity, I had asked them handle this ASAP since this is very serious issue.
    But no eta so far.  My personal estimate would be a few weeks for patch release ( note personal opinion).

    and we have no right to release local compiled version


    thanks

    Thank you again for the update.

    I might be shooting an arrow in the dark, but is this scenario possible:
    With Oculus Utilities 1.14.0, there is a way to use the plugin downloaded from the store and not the one shipped with Unity. Is it possible that a next update of OVRPlugin fixes this issue without Unity's involvement in it?

    /parth
  • JianZJianZ Posts: 59 Oculus Staff
    No, this is a general Unity Android issue, not even related with VR,  ovrPlugin has nothing to do with it.
  • drashdrash Posts: 2,816
    Trinity
    JianZ, I really appreciate your efforts on this.  Looking forward to that patch in the coming weeks!
    TitansOfSpacePlus_CoverArt_VRLandscape5_60p.png
  • SxKxSxKx Posts: 84
    Hiro Protagonist
    Big thanks for bringing this up, I´ve been laughing and crying trying to get my build working and just when I managed to balance my optimiaztions this comes up.  I hope they patch soon but at least can focus on some new things in the meantime and not waste my time because of bug Unity in their Android stuff. Keep us posted on the issue.
  • parthdarjiparthdarji Posts: 14
    NerveGear
    JianZ said:
    Hey Parthdarji

    I'm able to find the issue.  Unity 5.5/5.6 ( or maybe even later version of 5.4 ) are using new logic to detect big.LITTLE core,  unfortunately, there is a bug , which eventually results unity main thread running on the little core of Qualcomm S8, then more than half of the cpu power is gone.

    I had sent my fix to Unity and asking for a patch, will update here again once we got a release schedule ( should be soon )

    Before that,  probably Unity 5.4.3p4 is a good version  




    For anyone who stumbles across this thread, here a report on Unity 5.4.3p4 downgrade:
    1. The downgrade will most likely break all your UI for the project, so you will have to practically rebuild the entire thing again.
    2. The performance definitely increases, but Anti Aliasing of 4 or more would again bring you back to practically the same performance as 5.6
    3. 5.4.3p1 doesn't have Single Pass Stereo rendering, so you'll have double the draw calls.
    4. The app still doesn't run at 60fps on the S8 after rebuilding it - the performance fiddles between 40-55 whenever a UI is in view. Without the UI, the fps is 60. The same app performs at 60fps on both S7 and S6.

    HTH.
  • jasonVRCjasonVRC Posts: 1
    NerveGear
    Is this logged in Unity's issue tracker so we can get updates on its progress? I couldn't find it and I think it would be helpful.
  • FurGamFurGam Posts: 3
    NerveGear
    Will the fix/update link be posted here? 
  • parthdarjiparthdarji Posts: 14
    NerveGear
    edited May 31
    FurGam said:
    Will the fix/update link be posted here? 
    I'm following Unity's website for patch releases - will update here if/when I see one.

    [EDIT]: I've also raised a bug report with Unity but the team is in Europe and apparently the global S8 devices don't have this problem. I have followed up with them with no response yet. Will post any update here as well.
  • JianZJianZ Posts: 59 Oculus Staff
    Right, S8 Europe is using samsung exynos processor, which doesn't trigger this bug.
    A bit more updating from Unity:  a patched version 5.6.1p4 will be ship this Friday ( Jun 2 ) if QA testing was going well.
    the fix will be also back-ported to 5.4 / 5.5, will update here when we got an ETA.  
  • delphinius81delphinius81 Posts: 277
    Nexus 6
    Didn't see anything in the 5.6.1p2 patch notes regarding this, did it make it in or is it slated for a future release still?
  • JianZJianZ Posts: 59 Oculus Staff
    according our latest info,it is scheduled under
    5.6.1p4 

    5.4.5p4 (21st June)

    5.5.4p1 (14th June)

  • delphinius81delphinius81 Posts: 277
    Nexus 6
    Eek, that's going to be a few weeks away for the 5.6 version fix...
  • lholstvglholstvg Posts: 4
    NerveGear
    We’re also experiencing very bad performance on the Snapdragon-based S8 devices.

    So Unity 5.5.0b11 does not include that big.little change either, right? https://unity3d.com/unity/beta/unity5.5.0b11

    Our project is using Unity 5.5.0p3, so a downgrade was relatively easy... However it did not fix the issue for us.
«1
Sign In or Register to comment.