Search Unity

Bug Quest 2 Performance loss 2020.3 -> 2021.3

Discussion in 'VR' started by Cloudwalker_, Jun 20, 2022.

  1. biggoron88

    biggoron88

    Joined:
    Nov 7, 2017
    Posts:
    9
    I copy paste the message from the bug webpage
    Hello!

    We just want to give an update on this issue.
    We have the issue internally assigned as high priority.
    Our team is investigating the repro case right now.

    I do want to setup the expectation right. Performance issue could be caused by many different reasons and the current issue may not capture them all. So there is a chance the fix we provide to this case does not apply to other cases.

    We believe performance regressions should not happen without a good reason. We encourage you to submit your repro case so that we could have larger sample cases to look into. For every repro cases you submitted, once we confirmed they are not duplicate, we will take a look.
     
    tspk91, Extrys and DevDunk like this.
  2. TommyTheITGuy

    TommyTheITGuy

    Joined:
    Jun 11, 2015
    Posts:
    53
    Well good, at least it's finally acknowledged. Would probably be acknowledged earlier, if Unity had a sample project on Quest 2.
     
    DevDunk likes this.
  3. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    What i noticed the most is when i updated from unity 2020.1.17f1 using URP 8.4 to unity 2020.2 using its URP 10
    also even compatibilizing URP 8.4 with 2020.2, the performance improves by a lot but still not the same, so i think its part of the engine itself and a big part of URP
    I think there should be a way to completely disable features included in these new updates as if they were never created for the URP, because maybe some of these changes just made it work worse than before

    For example as someone pointed, some features were executing code even if not in use on these new updates like probe blending and so

    What i know is that performance started breaking at the very beginning of URP 10
     
  4. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    Things like this is what i mean
     
  5. Qleenie

    Qleenie

    Joined:
    Jan 27, 2019
    Posts:
    868
    Did some test with same two GPU heavy scenes, just switching URP version from 12.1.6 (patched by Meta with ASW, but not using ASW), and 12.1.7. Both on same Editor version (2021.3.9).

    Result: Consistent 10 FPS less on 12.1.7. So I guess the issue is (only) in URP 12.1.7, unless Meta changed more then just the adding of motion vectors in their branch.
     
  6. jeffries7

    jeffries7

    Joined:
    Jun 25, 2014
    Posts:
    59
    I've spent the last week upgrading a project from 2019 to 2022.1 and it is nice to see that the performance issues aren't just in our project.

    Our project went from rock solid 72fps down to 50-60fps. Disabling Light Layers has helped it go back to 72 but its nowhere near as stable as it was back in 2019
     
    fuzzy3d likes this.
  7. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    Hey! https://unity3d.com/unity/whats-new/2022.1.20
    Whats this?? Its this "Hidding the problem" thing happening again???
    2022.1.19 patch notes marked this problem as known issue
    why does 2022.1.20 not have this bug in Known Issues nor Fixed?

    Edit: I just saw it still in other patch notes marked as known
     
    Last edited: Oct 18, 2022
  8. TommyTheITGuy

    TommyTheITGuy

    Joined:
    Jun 11, 2015
    Posts:
    53
    It's marked in the 2023.1 alpha patch notes, where they probably plan to fix it first and then back-port it to earlier versions.
     
    tspk91 likes this.
  9. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    cook, i just was scared as is not the first time they hide a bug without fixing
     
    Ervo likes this.
  10. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    Now it seems "Hidden" for 2020.3
    Im pretty sure that means they wont work on it on that version :/
    Its so difficult just testing 2020.1.0f1 URP 8 versus 2020.3 URP 10?
    Just do that you will find it easy...
     
    Ervo likes this.
  11. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    Read what it says in the notes. They found an issue that was introduced in 2021, so they're working on that. Better that they work on something than nothing, right?
    If you see a regression between urp 8 and urp 10, make a bug report for that case.
     
    Extrys likes this.
  12. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    I already did and there is also reports on this, and that bug was marked as duplicate
    but i just saw the note, i will report it again using 2020.1 as base line
     
    Last edited: Oct 26, 2022
    Sholms and DevDunk like this.
  13. Sholms

    Sholms

    Joined:
    Nov 15, 2014
    Posts:
    85
    Any update about this?
     
  14. Extrys

    Extrys

    Joined:
    Oct 25, 2017
    Posts:
    345
    Had no time for doing a repo proyect yet
     
  15. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,364
    refprobe blending... are we getting back to BIRP performance as they're closing the feature gap?
     
    DevDunk likes this.
  16. fuzzy3d

    fuzzy3d

    Joined:
    Jun 17, 2009
    Posts:
    228
    I hope this is not too off-topic, if it is, I apologize.

    2022.2.0b13, URP 14.0.3, 3D (URP) Core template.

    For beginners (like me): If you use the 3D URP Core template and set the Quality Level to "High Fidelity" or "Balanced", the FPS will drastically decrease because in "URP-HighFidelity-Renderer" the Renderer Features "Screen Space Ambient Occlusion" effect is set by default.

    If you started from this template and want to publish on Quest, this default setting is wrong! Remove SSAO and set everything carefully according to the Meta documentation!

    This is fresh URP project from Core template:
    upload_2022-11-8_8-27-50.png
    You can't build a project for Quest on this!

    Make sure you don't have effects like SSAO, Bloom, Vignette turned on somewhere...
     
    Thimo_ and DevDunk like this.
  17. Qleenie

    Qleenie

    Joined:
    Jan 27, 2019
    Posts:
    868
    These are good tips, but it should be still made clear that the performance drop is caused by internal Unity changes, as exact same project performs very different on different Unity/URP versions.
     
  18. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    As said, these are inconvenient, but not the cause of the regressions. Projects with the same settings also degraded in performance sometimes
     
  19. Cloudwalker_

    Cloudwalker_

    Joined:
    Jan 3, 2014
    Posts:
    140
    DanjelRicci, Thimo_ and DevDunk like this.
  20. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    I see the URP performance problem was removed from the 2021.3.14 changelog (it was under "Known issues" in previous versions), so I gave it a try hoping it was actually fixed. Well, it's not: with my current project, performance on Quest goes down noticeably after switching from 2020.3.42 to 2021.3.14. It's literally the same identical experience of months ago (but at least FFR is working this time).
     
  21. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    Then make a bug report for your project and attatch both 2020 and 2021 versions
     
    Thimo_, Cloudwalker_ and DanjelRicci like this.
  22. constantinpopp

    constantinpopp

    Joined:
    Jul 21, 2017
    Posts:
    5
    Thanks, this has helped me. I didn't realize that SSAO was such a big performance killer.
     
  23. fuzzy3d

    fuzzy3d

    Joined:
    Jun 17, 2009
    Posts:
    228
    I don't even use AO in static renders (MAX, Blender...) because it looks ugly.
     
  24. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    There is a new big performance issue on the issue tracker. URP team is already made aware and reproduced it themselves (not just QA)
    https://issuetracker.unity3d.com/is...est-2-builds-across-2020-dot-3-and-2023-dot-x

    Here are some other smaller issues that are relevant to VR performance as well:
    Input system optimizations performing worse in VR: https://issuetracker.unity3d.com/is...t-system-reduces-performance-in-built-players
    OculusXR performing worse than OpenXR: https://issuetracker.unity3d.com/is...-has-worse-performance-than-openxr-when-built
    Graphics Jobs not working on standalone VR: https://issuetracker.unity3d.com/is...hes-on-quest-2-when-graphics-jobs-are-enabled
     
    octaav, Thimo_, Shizola and 2 others like this.
  25. LittleDreamerGames

    LittleDreamerGames

    Joined:
    Apr 9, 2017
    Posts:
    73
    Here's my story. I've been stuck in Unity 2020 for the past 2 years :)
    • Issue #1
      • Animations in my game were pretty choppy. I set up a test VR project to confirm that it wasn't my game, and sure enough same issues with a simple project. I set up an animation that would move a sphere back and forth out in front of the player. When the game would run it appeared as though either the sphere, or the render order of the eyes, made it look like the sphere was jumping backwards every other frame.
        • Fix #1: This was a temporary stupid hacky fix, but if I pressed the meta home button (the one that lets you kill the game) and then press it again to go back to the game, the animations were fixed.
        • Fix #2: Well, this one was surprising, but at that time I decided to pay for Plus, and low and behold, after running the game compiled with Plus, the animation played perfectly smooth.
    • Issue #2
      • Similar to issue #1, animations would lag (a little in Unity 2020, but completely unacceptable in 2021), well, more like, the game would hang up momentarily several times during gameplay.
        • Fix #1: People kept saying that thermal throttling could cause something like that, but my issue was different, something no one would ever think of. Ready? My game uses dynamic lights, so, apparently, when I change the light intensity to 0.0, the game would hang momentarily. The fix, just pick a small number that isn't 0.0, so I chose 0.01. Frame rate is now constant.
    I hope this helps somebody!
     
    Last edited: May 8, 2023
  26. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    Does that happen with the latest lts release as well? If so, definitely file a bug report (preferably in a reproduction project).
     
  27. LittleDreamerGames

    LittleDreamerGames

    Joined:
    Apr 9, 2017
    Posts:
    73
    There are other issues that crop up when I upgraded to 2022. The main one being that objects no longer instance where I tell them to. If I ever get the time I'll try to reproduce it in a project I can share. For now, however, I have to run with what I have.
     
    DevDunk likes this.
  28. starfoxy

    starfoxy

    Joined:
    Apr 24, 2016
    Posts:
    184
    Well this has been quite the insight. What is the recommended course of action? What is missing by going with 2019 URP?
     
  29. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    Check the urp and unity release notes I guess. Or the roadmap! 2021lts is a pretty safe bet now. 2020 is still slightly faster
     
  30. LittleDreamerGames

    LittleDreamerGames

    Joined:
    Apr 9, 2017
    Posts:
    73
    I ended up having to downgrade back to 2020 from 2021. I discovered one of the environments in my game was doing very poorly. I wanted to upgrade really bad too. Oh well.

    starfoxy, the safe route would be to develop on the lowest version you can get away with (2019 being the lowest), and then when you want to see if you can upgrade, create a copy of the game and call it "UpgradeTest" then do a build from that. That way your stable project is preserved and you can still test upgrades.

    Good luck!
     
    DanjelRicci likes this.
  31. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    1. Quick tip: use version control to handle upgrades (and work on games in general)
    2. What part was the degradation if you can pinpoint it, terrain?
    3. Did you set force prepass for depth?
    4. Please make a bug report with both projects attached, so newer versions can be usable. If no one reports the issues it will never get fixed
     
    fuzzy3d and glenneroo like this.
  32. LittleDreamerGames

    LittleDreamerGames

    Joined:
    Apr 9, 2017
    Posts:
    73
    1. I use version control, and I also use local backups. It was quicker to restore my local backups and merge new changes that way.
    2. I assume it's pixel coverage. The scene that was fine doesn't cover the whole screen, but the other one does. It's not triangle bound, however, because I can draw a ton of objects and it runs fine.
    3. I'm not sure what that is, unless it's the pass that only draws into the depth buffer, so the second pass will reject most pixels. I could try that out.
    4. This is a commercial game I'm working on so I'm not willing to share the source code. That means I'd have to create a sample scene, and I just don't have the time for that.

    Honestly I'm just really tired of trying to upgrade. An upgrade should improve performance, not tank it. I've been upgrading on and off for 2+ years now, and I'm just tired of it. I also have a deadline I have to meet, so I don't have time to keep trying to fix something.

    I do thank you for your help though. It is very appreciated.
     
    DanjelRicci likes this.
  33. LittleDreamerGames

    LittleDreamerGames

    Joined:
    Apr 9, 2017
    Posts:
    73
    Here's the game. It's fairly simple and should not be getting low frame rates. It actually runs fine on Quest and Quest 2 when it's on Unity 2020. So something else is the bottleneck.
    https://www.gobngob.com/
     
    Last edited: May 22, 2023
  34. LittleDreamerGames

    LittleDreamerGames

    Joined:
    Apr 9, 2017
    Posts:
    73
    OK, I upgraded to 2021 again and set Depth Priming Mode to Force, and so far so good. Makes me wonder if this was hard coded in 2020. The downside is that the GPU Level went up to 5. I played for about 20 min and no thermal throttling, so that's good. I'm not 100% confident that the real issues was solved, though. Still, thanks for getting me a little closer to my target performance, DevDunk.
     
    Last edited: May 22, 2023
    DevDunk and fuzzy3d like this.
  35. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    Graphics jobs should work now in all the latest releases (when using vulkan). Tested on quest 2 and pico 4
    Enabling it does improve performance for me, going from 1.3ms to 1ms on rendering a simple scene on the CPU side.
    If this does not work for you on the latest unity version, make a bug report so it can be fixed
     
    glenneroo likes this.
  36. reddo

    reddo

    Joined:
    Jul 1, 2015
    Posts:
    39
    Graphics jobs does work but strangely causes flickering with one the transparent shaders in my project. Without Graphics jobs, there's no flickering.
     
  37. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    If you are up to date with unity and URP please make a bug report so this can be fixed.
    I had no transparency in my test project
     
  38. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    So, about this one: https://issuetracker.unity3d.com/is...est-2-builds-across-2020-dot-3-and-2023-dot-x

    Can anyone from Unity chime in and explain how on earth this was marked as "By Design" and given a partial answer to a partial problem (soft shadows change in Unity 2022, where most Quest games don't even use shadows)?
    What about the huge performance discrepancy between Unity 2020 and 2021, which is carrying over Unity 2022 regardless of the shadows settings?

    A ton of VR standalone games are using Unity and many rely on URP, yet this massive issue has been ignored since when it was first lamented. Is Unity just planning to rely on the extra power of Quest 3 so developers can waste some good GPU to circumvent a fundamental Unity issue? Are we paying a Unity license just to ride with the waves and pray that in the next Unity update our games will keep the same framerate as before, even when we made no changes to our codebase?

    Can we at least know if Unity is just planning to not solve this entirely, so we can safely switch engine or go back to flatscreen games for our next projects? Thanks.
     
  39. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    I also asked on the blitz day and will making more reports in july.
    Really annoying
     
    Halfspacer and AdrielCodeops like this.
  40. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    They reopened the issue :p
     
    AdrielCodeops and ChescoRed like this.
  41. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    Lmao yes I literally noticed moments ago while talking with another developer. :D I hope this time we get relevant updates on this.
     
    ChescoRed likes this.
  42. ChescoRed

    ChescoRed

    Joined:
    Sep 29, 2018
    Posts:
    33
    Hey @DevDunk how's it going, do you think we have any hope? Hi sir @DanjelRicci :D
     
    DevDunk and DanjelRicci like this.
  43. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    I do think there is hope. 2021 is pretty solid and will be available for a while. 2022.3 is making good progress. While the updates we got publicly were a bit disappointing, I do think a lot of work has gone into profiling to see any performance regressions and what caused them.
    More VR friendly projects (with hard shadows and Simple Lit/Baked Lit shaders) should have less issues as well
     
    Lion_C and ChescoRed like this.
  44. Shizola

    Shizola

    Joined:
    Jun 29, 2014
    Posts:
    476
    glenneroo, ChescoRed and DanjelRicci like this.
  45. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    Great testing! Thanks a lot.
    Could you make a bug report with the project (preferably all versions of it) and the results attatched, so the team can look into it and potential improvements?

    Edit: I assume this was with URP btw? The github only has 2019 LWRP branches
    And was this for mobile VR or PC VR?
     
  46. Shizola

    Shizola

    Joined:
    Jun 29, 2014
    Posts:
    476
    I'll submit one for 2023.2 as that seems abnormally worse. The project is here if you want to check it out TedSwanseaUni/VR-PotatoBenchmark (github.com)

    I measured URP running on Quest Pro . The project can switch between URP and BRP but, BRP stopped working correctly from 2021 onwards. Even for a simple project the upgrade process between versions is quite annoying.
     
    DanjelRicci, ChescoRed and DevDunk like this.
  47. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    LittleDreamerGames likes this.
  48. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    For me 2021.3 is within 5% of 2020 (both positive and negative).
    If you find any regressions, report them. 2020 is out of lts, so more and more tools can break compatibility
     
  49. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    310
    I still need to try the latest Unity 2021 or 2022 versions, but I’m not expecting anything new. Two months ago 2021 didn’t even hit stable 72 fps on a project that runs smooth 90 fps on 2020.

    The only way to reproduce my issues would be to send the whole affected projects to Unity, but it’s not something I’m willing to do. Reducing them to a repro project would take too much time and I already wasted weeks on this. As a solo developer, it’s just too much time.
     
  50. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,060
    2021 does have some extra steps.
    An example is to set the depth mode to force prepass instead of after opaques for a big boost (if you use depth). So check over every URP and player setting and turn down or disable things where possible

    If a certain part of your scene gives the performance issue, you can export it as a unity package into a new project with the dependencies maybe. And Unity isn't allowed to do anything with your project except test for reproduction.