Search Unity

Bloom drops FPS ?

Discussion in '2019.3 Beta' started by makinahmet, Oct 6, 2019.

  1. makinahmet

    makinahmet

    Joined:
    Jan 9, 2014
    Posts:
    10
    Hi. Using 2019.03 beta 6.

    Firstly;
    1. Created a project with Universal RP template.
    2. Created an empty scene and added a fps counter.
    3. Builded to Android with nothing changed and FPS IS 60.

    Secondly;
    1. Added global volume to scene.
    2. Created a volume profile adn assign it to the global volume.
    3. Added bloom to the volume profile.
    4. Builded to Android with and FPS IS 30.

    Here is camera settings. And why images not appear on forum :( So added image links.


    https://drive.google.com/open?id=1hU-GLgfM-S-U-MTlxfntAkNf9CwFGMYW
    Here is volume settings
    https://drive.google.com/open?id=1Q1otGzIGPDYj-ugZ0HYyDHn7SMBOR9FJ

     
    Last edited: Oct 6, 2019
  2. buFFalo94

    buFFalo94

    Joined:
    Sep 14, 2015
    Posts:
    188
    Bloom is a heavy post processing which tax the GPU a lot. So on a mobile phone it's excepted to see such drop in performance
     
    ROBYER1 likes this.
  3. GameDevCouple_I

    GameDevCouple_I

    Joined:
    Oct 5, 2013
    Posts:
    1,974
    Its not a bug its just your trying to do stuff on mobile that is not really for mobile.
     
  4. makinahmet

    makinahmet

    Joined:
    Jan 9, 2014
    Posts:
    10
    So, URP is still unsuitable for use of low end mobile devices?

    My smartphone is "Samsung galaksy grand pirme plus".
    OS Android 6.0 (Marshmallow)
    Chipset Mediatek MT6737T (28 nm)
    CPU Quad-core 1.4 GHz Cortex-A53
    GPU Mali-T720MP2

    Fps is around 30.

    Tried with Sansung galaxy J4.
    OS Android 8.0 (Oreo)
    Chipset Exynos 7570 Quad (14 nm)
    CPU Quad-core 1.4 GHz Cortex-A53
    GPU Mali-T720 MP2

    FPS is around 20.
     
  5. buFFalo94

    buFFalo94

    Joined:
    Sep 14, 2015
    Posts:
    188
    That depend on the project
    What are you trying to achieve?
     
  6. Peter77

    Peter77

    Joined:
    Jun 12, 2013
    Posts:
    4,120
    If you find that UniversalRP performs worse than the built-in renderer, then please submit a bug-report. Unity Technologies treats that as a bug as they explained in an URP related Unite talk.

    If you have a project that runs fast with built-in and slow with URP, it would help if you submit a bug-report as described in this document:
    https://unity3d.com/unity/qa/bug-reporting

    It's important that you report these issues together with a reproduction project if you want them to get fixed. If you don't do it, it might be a long time until someone else reports them or until Unity Technologies find them.

    After you submitted the bug-report, you receive a confirmation email with a bug-report Case number. Please post the Case number (number only, not the link) in this forum thread for Unity staff to pick up.
     
    LeonhardP likes this.
  7. interpol_kun

    interpol_kun

    Joined:
    Jul 28, 2016
    Posts:
    76
    I do have a bad performance with Bloom on my low-end device (ARM Mali-T830 MP2), it's around 19FPS (with Fast method checked in).

    But on the better devices it works well. It seems that bloom is too heavy for that kind of GPU.

    Moreover, they will drop new bloom in URP which seems faster. You can check if it's already there.

    upload_2019-10-9_3-45-15.png
     
  8. makinahmet

    makinahmet

    Joined:
    Jan 9, 2014
    Posts:
    10
    It will a 2.5D simple platformer. Although it is an empty scene build, FPS drops.

    I didnt compared it with build in shaders. I will do a test with built in renderer and compare it with URP renderer. If URP performs worse, i will submit a bug report. In spite of everything, i need to test it with a high-end device.

    The project created with URP template. So it is already using URP. Like you said, "It seems that bloom is too heavy for that kind of GPU"

    I need to test with several devices and see result. But it will take time as you know.
     
  9. BattleAngelAlita

    BattleAngelAlita

    Joined:
    Nov 20, 2016
    Posts:
    61
    >So, URP is still unsuitable for use of low end mobile devices?
    Yes. URP is never pretend to be "extremly fast solution for low end mobile devices". URP is more about low-end PC and VR.
    And yeah, URP post processing solution is not so optimal.
     
  10. GameDevCouple_I

    GameDevCouple_I

    Joined:
    Oct 5, 2013
    Posts:
    1,974
    I didnt mean with my above comment that URP itself is not suitable for mobile, but that bloom post processing itself currently is not. In general post processing should be used sparingly on low end mobile.
     
  11. interpol_kun

    interpol_kun

    Joined:
    Jul 28, 2016
    Posts:
    76
    Wait a sec. URP is being advertised as a scalable solution for both mobile and high-end consoles and PCs. In the future, as Unity says, it will replace the built-in pipeline.

    Moreover, Unity says that URP should always be faster (or equal, but not slower) than legacy with the same settings, and if it's not, they treat that as a bug. So that means that URP have to be fast on low-ends, because legacy is fast.

    Now my experience with LWRP/URP is quite opposite. First it was some Vulkan issues I figured out (thanks to Felipe Lira), then AA and PP problems I can't figure out right now.

    Yes, bloom is an expensive PP effect, but it's not as that expensive to make your almost empty scene to run at <20 FPS.

    LW/URP should be fast out of the box, it has a mobile quality preset in the editor, but always when I start a new project with LW/URP, I have to go to the settings to turn off a lot of things for mobile platform which makes RP at least work well on empty scenes w/o game logic.

    I don't have any of those problems with legacy. Out of the box URP works worse than legacy. That is the fact for me, and this is true since 2018.2, and nothing ever changed.
     
    buFFalo94, ROBYER1 and Peter77 like this.
  12. Andre_Mcgrail

    Andre_Mcgrail

    Unity Technologies

    Joined:
    Dec 9, 2016
    Posts:
    147
    First thing I notice is that you have `Stop NaNs` enabled, this is a very slow brute force solution to removing NaNs and should definitely not be enabled on mobile devices, if you are encountering NaNs using Universal RP shaders then we need bug reports for where you are seeing them, if you are getting them on custom shaders or shadergraph shaders, make sure you are not getting to the point where you might have divisions by zero.

    Some other things to be wary of(especially on android devices) is making sure you are rendering a resolution that is reasonable on the GPU you are targeting, a lot of phones have massive resolutions, some even approaching 4k and with GPUs that cannot dream of handling this kind of resolution with 3d effects let alone post, here you can make use of `Render Scale`, you can see here how it can be used to limit the resolution to a max size. Another tweak is looking to see gif you really need HDR or not, this will add a fair amount of memory usage as well as cost to all the post effects you do.

    It would be good if you could share a capture form the profiler running on your android device, the drop from 60>30 also sounds like sync, as you might be hitting 55fps and vsync will kicking lowering it to 30. see here for more information about saving profiler captures https://docs.unity3d.com/Manual/ProfilerWindow.html

    Actually to the contrary, it is an evolution of Lightweight RP, and it is designed to be faster in every way compared to the builtin renderer, saying that, it's not going to be multitudes faster, in some cases yes but once you get to very low end devices you see less improvements due to builtin automatically stripping out a lot of features.

    This is by design, in LWRP/URP we didn't want to do things behind the scenes automatically like builtin does(such as fallback to Blinn shading or force LDR rendering on android), in Universal RP we want you guys to get the exact settings you choose in the editor, and by default the settings on the new Universal RP Asset are on the mid ground, so building and running on a low end device will run slower than builtin due to more things being enabled.

    We are working on ways to make the out of the box experience better with Universal RP, right now it is all very new and different to what everyone is used to, but I can say it is much faster and more efficient than builtin, we will continue to improve perf across the board and make sure we have more learning resources and examples on how to get the best results out of it.
     
  13. BattleAngelAlita

    BattleAngelAlita

    Joined:
    Nov 20, 2016
    Posts:
    61
    >Actually to the contrary, it is an evolution of Lightweight RP, and it is designed to be faster in every way compared to the builtin renderer
    And this is exactly reason of renaming LWRP to URP, name LWRP confuse peoples and they think that LW means super lithtspeed fast on mobile started from something like nokia 6600. True LW might be something like 1 dir light + lambert + lightmap + minimalistic posts.
     
  14. Andre_Mcgrail

    Andre_Mcgrail

    Unity Technologies

    Joined:
    Dec 9, 2016
    Posts:
    147
    And this is still possible in Universal RP, use only 1 light, use the simple lit shader(sorry we have not provided a simple lit shadergraph master node yet :( ) light map the rest and be very careful with post/roll your own with the ScriptableRenderFeature/Pass API.
     
  15. makinahmet

    makinahmet

    Joined:
    Jan 9, 2014
    Posts:
    10
    Your answer was very announce. Really enlightened thank you :) i did not have time to test again because of my full time job. i will make a new test as soon as possible.
     
  16. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    779