Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Question What HDRP parameters can be tweaked to reduce these sources of GPU load?

Discussion in 'High Definition Render Pipeline' started by Zolden, Dec 23, 2022.

  1. Zolden

    Zolden

    Joined:
    May 9, 2014
    Posts:
    141
    I'm profiling GPU load and this is what it shows:

    upload_2022-12-23_15-32-5.png

    It's not quite clear what exactly can I change in the HDRP settings to increase performance related to the heaviest sources of GPU load, that I marked by a purple bracket. Could anyone please give some suggestions of what can be done to try to optimize these things.
     
    Last edited: Dec 23, 2022
  2. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Shadow maps - The amount of lights that have shadows enabled, less meshes that cast shadow will improve performance. If you have grass, you could disable shadows and use contact shadows from a post process volume, much cheaper but screen space. If you have have point/spot/area lights, HDRP can cache the shadows for much better performance. Caching doesn't work for high quality shadow filtering though, it'll do it partly, but with high filtering some of the costs can't be cached. More info in deferred lighting at the bottom of this post.

    Ambient Occlusion - SSAO/Ambient Occlusion in your global volume, reduce the quality, set it to medium and disable full resolution

    Volumetric lighting - Fog override in your global volume, at the bottom you will find volumetric fog quality, set it to low. the less lights that have volumetrics enabled, the better. Volumetric fog denoising also matters, reprojection denoising is a lot more expensive than gaussian.

    Post processing - TAA, Bloom, Motion blur, etc, all found in your global volume except TAA which is in your camera.

    Object Motion vectors -- motion vectors for objects that move, usually grass with wind. You can disable motion vectors in the mesh/prefab, but you usually want it for better TAA. You can keep it enabled for your first LOD, and disabled for all LODs after.

    BuildListLight - Not sure, but probably the amount of mixed/realtime lights you have. Point lights, spotlights, etc. You can cull them after a certain distance with fade enabled so they don't just pop in or out. You can find the option for it in the inspector of said lights.

    Gbuffer & deferred depth prepass - Less mesh polygons, less objects rendered, less small triangles (LODs can help)

    Deferred lighting - this can be a few things, first is the amount of Realtime lights you have, the amount of objects lit by it, the range of your lights (point/spot/area) and second if you have your Shadow Filtering Quality set to high, a large performance cost that comes from shadow sampling will be added to deferred lighting, especially point lights, very expensive with high quality shadow filtering. This cost can't be cached (only happens with high filtering)
    You can set your shadow filtering option in your active HDRP asset.

    - edit: For an isometric game you might not need LODs, just have game-ready assets with a reasonable polygon count
     
    Last edited: Dec 23, 2022
    Zolden likes this.