Search Unity

HDRP Post Processing (SSGI, Volumetric Fog performance)

Discussion in 'High Definition Render Pipeline' started by jjejj87, Dec 15, 2021.

  1. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    So, I have been working on FPS dungeon crawler with physical accurate graphics on the latest HDRP. The project has entered a optimization phase and I have been going through every small corners to squeeze out more performance.

    The game on average stays between 500~800 draw calls max and below 500k triangles. I'd say that the game, from what it may use CPU to render is highly highly optimized.

    It also uses both GPU instancing and SRP batcher.
    It is obviously targeted at windows desktop users with moderate hardware and I'd say minimum GPU is 1060.

    My test machine is AMD5950x, 64gb ram, nvme SSD, and RTX2080
    All stats and numbers were captured @1440p vsync disabled.

    Now, to get to my numbers
    aaa.png
    SSGI at low alone takes 5ms at 1440p and 9ms at high settings...
    According to the profiler, CPU is just waiting all day for the GPU to finish rendering SSGI.

    Now with FSR and DLSS turned on it is able to make up a lot of SSGI's performance, so it is great to see DLSS and FSR working as intended...

    But,

    while the game goes for realistic render, it is not really heavy, it is a corridor shooter and hence really has a small portion of the map procedurally loaded, it never goes above 0.5m triangles...and around 500 draw calls. CPU is literally having a holiday most of the time.

    even without SSGI, the performance is way too low, 78FPS?
    As far as I can tell, there isn't anything I am doing wrong...it just seems to be performing bad. On built in this scene would easily hit 200FPS at 1440p

    The game is clearly GPU bound, but at the same time it should not be at this render density.

    Also, SSGI performance, is this what we are to expect of SSGI as a technique? Something like 5ms~10ms at 1440p? I am seriously curious of this and would really appreciate it if someone can share their experience.
     
  2. LumaPxxx

    LumaPxxx

    Joined:
    Oct 3, 2010
    Posts:
    339
    i wish Unity Team could do something for SSGI,the performance is really bad while the quality is so so ,and the ghost effect is so heavy in the shadow area makes it so useless.

    I highly recommend to add Color Bleeding effect option in Screen Space Ambient Occlusion like Horizon Based Ambient Occlusion did.
     
    Last edited: Dec 16, 2021
  3. Deleted User

    Deleted User

    Guest

    the quality of SSGI is quite great....https://forum.unity.com/threads/ssg...enoiser-and-performance.1211346/#post-7744245 i have written there how to achieve it.... and about performance its given in the same thread last post
     
  4. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    I honestly think the quality is not great - it works so so for close up stuff, but in a dynamic scene, SSGI just breaks down. Glitters and artifacts everywhere (I am using the latest HDRP). The fact that reflection probes needed to keep it stable is also another point. What is the point of a SS effect if it requires a baked solution? (Unless it is coupled with a realtime probe, but then we are talking worse performance.)

    I mean, if it looks this bad, then it should at least work well and fast...

    So, in its current state, SSGI is very expensive to run (close to 10ms @1440p, RTX2080) and requires reflections probes to keep it stable, and even with it, there are tons of artifacts. And these artifacts are not SS related. People say VXGI is expensive to run, but this SSGI is way worse or about the same.

    Unity really needs to up their game or come up with another dynamic GI...
     
  5. chap-unity

    chap-unity

    Unity Technologies

    Joined:
    Nov 4, 2019
    Posts:
    765
    Hey,
    For what is worth, we already know SSGI costs too much.
    Previously, SSGI was on the right cost budget but was not really usable, recent version costs more but starts to be usable. So keep in mind, it already has its limitations performance wise.
    For performance, especially at higher resolution, you can evaluate SSGI at half resolution (same for the denoiser) and reducing the number of steps also helps.

    For the artefacts / ghosting, what needs to be understood is that SSGI is not meant to be used alone, it has screen space limitations and needs to have fallbacks (same way Screen Space Reflections does). By default, it will fallback on reflections probes and sky but it also works with probe volumes. (even though probe volume is not fully ready yet)
     
    PutridEx likes this.
  6. slime73

    slime73

    Joined:
    May 14, 2017
    Posts:
    107
    I think the general concern is that achieving real-time performance in the context of a full game with the current SSGI (by enabling half-res settings, etc.) may introduce so many artifacts and visual issues that it's not a shippable solution for most types of games outside of small tech demos either way. Some of those artifacts are inherent to screen-space raymarching itself, but maybe not everything is. I'd be curious if there are solid close-to-1:1 comparisons with the technique in other engines or games.

    That being said, I don't have concrete issues or opinions of my own to post in this thread yet - but I may in a few weeks once I'm able to try it out for the projects I work on.
     
    chap-unity likes this.
  7. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Didn't know that it works with probe volumes, nice. I look forward to it's future :D



    Ignoring interiors, I think it's a really good fit for outdoors. Make sure fallback is set correctly and it looks pretty nice.

    SSGI really gives forests and environments in general a nice push in visual quality.
    Somewhat shadows sky light, forests look really good.

    I remember SSGI in 2020, now that was unusable. Now it's actually good for outdoors.
    Unfortunately, if you want sensible performance you have to enable ssgi half resolution, which leads to some noise, although I usually keep denoising at full res cause I want as little noise as possible. If i lowered res for denoiser as well, it'd be even more performance, but I'm not a fan of more noise :)

    Although for exteriors the noise at half ssgi res is still usable -- it's not a deal-breaker.
    I know it uses raytracer gi denoiser now, which is nice.

    all in all, I think SSGI is in a good place for exteriors.
    Although if by some miracle noise can be lowered even further when evaluating ssgi at low res,
    it'd be even nicer :D
     
    Last edited: Dec 21, 2021
    BOXOPHOBIC and chap-unity like this.