Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

LWRP 4.0 Oculus Go - Final Blit Performance. Is it needed?

Discussion in 'Graphics Experimental Previews' started by swirvithan, Dec 11, 2018.

  1. swirvithan

    swirvithan

    Joined:
    May 26, 2017
    Posts:
    13
    Hi all,

    I've been working on performance optimizations for our Oculus Go project for a bit and noticed a rather large performance drain in the FinalBlitPass that the LWRP enqueues. FinalBlit accounts for about half of the GPU time of our frame. I ended up disabling it by removing the "isTargetTexture2DArray" portion of the "RequireIntermediateColorTexture" function in ScriptableRenderer.cs, but I'm unsure why we need a intermediate color texture when using VR/Texture2DArrays in the first place.

    The latest version of LWRP seems to keep this same behavior, though in renamed files.

    Does anyone know why VR/using Texture2DArrays for the camera target requires the LWRP to use an intermediate texture and then blit to the final framebuffer? Though we've seen an awesome performance boost from disabling this behavior I'm weary of deleting things without understanding them. :D

    Thanks!
     
  2. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    IIRC it's a current issue with the core engine implementation, but I could be conflating that with one of the multiple other underlying core engine issues like MSAA and Depth.
     
  3. swirvithan

    swirvithan

    Joined:
    May 26, 2017
    Posts:
    13
    I did see the comment in the LWRP about requiring a depth prepass for MSAA that you might be referencing, and funny enough have also disabled that when building for Android. MSAA still works on the Go so I assumed it was a desktop exclusive problem. I'm guessing the Texture2DArray FinalBlit behavior is the same type of thing.