Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Bug Cant avoid GMEM Load/Store on Android Device even if Load/Store action is set to DontCare in unity

Discussion in 'Universal Render Pipeline' started by EminemJ, Feb 17, 2023.

  1. EminemJ

    EminemJ

    Joined:
    Mar 10, 2020
    Posts:
    42
    To avoid some GMEM Load/Store action, I manually set the Depth Load/Store action to DontCare.In Unity's Frame Debugger, it shows the actions are correctly set. With Renderdoc, I can see the glinvalidateframebuffer is called. However, when i trace with SnapdragonProfiler, the GMEM Depth Load/Store actions are still there. Is this a bug? If not What is the best practice to avoid these GMEM Load/Store.
    btw, the unity version is 2021.3.13, with URP12
     

    Attached Files:

    • GMEM.png
      GMEM.png
      File size:
      176.9 KB
      Views:
      81
  2. GpuGem

    GpuGem

    Joined:
    Feb 24, 2022
    Posts:
    3
    Any luck with this? I'm encountering the same issue.
     
  3. Incode

    Incode

    Joined:
    Apr 5, 2015
    Posts:
    77
    I seem to be encountering something similar to this this as well, eating upwards of 4ms in our build, but we have depth disabled in the URP settings. @rjonaitis @ManueleB any insight into this?
     

    Attached Files:

  4. ManueleB

    ManueleB

    Unity Technologies

    Joined:
    Jul 6, 2020
    Posts:
    98
    load/store actions passed to SetRenderTarget have only effect on backends that support explicit load/store configurations, so Vulkan RenderPasses and Metal Encoders. That API doesn't really affect the GLES backend in terms of controlling bandwidth usage.

    If you think performance wise Unity is doing something wrong I would file a bug so the GLES team can investigate

    Also as a general note: what the frame debugger claims is what the SRP API is requesting, unfortunately in some cases doesn't end up matching the actual result based on backend implementations. So when using GLES the only way to see the final result is using platform specific debuggers (like you did)
     
    Incode likes this.
  5. ManueleB

    ManueleB

    Unity Technologies

    Joined:
    Jul 6, 2020
    Posts:
    98
    That sounds like a bug, please report the issue so it can be investigated.

    Just to clarify: that depth option should control the backbuffer (swapchain) depth, the intermediate textures used by passes would still use depth if needed, this should affect only the target of the final blit pass
     
    Incode likes this.