Search Unity

Question Empty scene HDRP rendering taking way too much frame time (optimization tips?)

Discussion in 'High Definition Render Pipeline' started by PhilSA, Mar 9, 2021.

  1. PhilSA

    PhilSA

    Joined:
    Jul 11, 2013
    Posts:
    1,926
    I'm seeing the HDRP take 4-5ms per frame in the profiler, in a scene that is nearly empty (just 5 extremely simple meshes with Lit material, and one directional light). I'm wondering:
    1. if this is normal
    2. if there's anything I can do to reduce this significantly while still having decent rendering quality


    By contrast, the URP only needs about 1.5ms in the same situation:


    My specs:
    - GTX970 and i5-4670k
    - Unity 2021.1b10
    - HDRP 11

    The profiling is done in editor, but the same contrast of HDRP vs URP remains in builds. I have URP builds running at 900fps while HDRP can barely go over 200fps when there's nothing going on in the scene. For games aiming for 120-144fps, this is a problem. With that much of the frame time being dedicated to rendering, it leaves almost nothing for other game logic. And the reason why I don't use URP instead is because I still want people with high-end hardware to be able to play the game with all the nice rendering features

    Are there any obvious things I can turn off to get it down to 1-2ms like the URP? I tried turning off Volumetrics & SSR in the pipeline asset, but it didn't make that much of a difference.
     
    valarnur likes this.
  2. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    The baseline is just fairly heavy and if you don't want to give up substantial quality nothing you can do. It's just the way it's designed.

    It creates a lot of textures internally and has a lot of passes/compute dispatches that it uses to store and then at some later time compose stuff. So texture quality/size naturally has one of the largest impacts, but of course that's a direct trade off in quality. Disabling individual features generally has marginal impact. Because a lot of features require a chain of previous composition and a lot of that is shared by multiple features.

    Unity created a sort of all or nothing paradigm with HDRP/URP. It left a fairly large middle ground that happens to be where most games sit. The FPS you want will likely never be possible in HDRP if it's a competitive game visually. URP + deferred (not sure of the state of that) is going to be much closer to what you want I think. And then relying on the asset store for higher level features like sky/fog, or rolling your own.

    Deferred is the hard problem here. Using HDRP for it's high level features like sky/fog is a mistake. Those are trivial in comparison. Especially once you factor in the overall cost on your project of dealing with the higher HDRP baseline cost. It took me a month to roll our own sky/scattering/fog. I'm not a domain expert. This is just emphatically not built in rendering with a mature asset store selection. Solving rendering is just a harder problem then it used to be and it's going to remain that way for a while.
     
    PhilSA likes this.