Search Unity

Bug AfterRenderingPostProcessing renderer feature + Single Pass Instanced stereo rendering is broken

Discussion in 'Universal Render Pipeline' started by enh-tatejima, Oct 21, 2021.

  1. enh-tatejima

    enh-tatejima

    Joined:
    Aug 7, 2019
    Posts:
    1
    Hello,

    I've found an issue in URP 12.1.0 that renderer features executed on AfterRenderingPostProcessing (or AfterRendering) will not render correctly if Single Pass Instanced stereo rendering is enabled. Both instances are rendered to the left eye render target.

    I think the cause is that the depthSlice is set back to 0 after swapping the color buffer. My workaround is modifying RendererTargetIdentifier right after swapping the color buffer so its depthSlice is set to -1.

    Code (CSharp):
    1. // PostProcessPass.cs:615
    2.                 if (m_UseSwapBuffer && !m_ResolveToScreen)
    3.                 {
    4.                     renderer.SwapColorBuffer(cmd);
    5.                 }
    6.  
    7.                 // workaround
    8. #if ENABLE_VR && ENABLE_XR_MODULE
    9.                 if (cameraData.xr.enabled)
    10.                 {
    11.                     var xrColorAttachment = new RenderTargetIdentifier(renderer.cameraColorTarget, 0, CubemapFace.Unknown, -1);
    12.                     renderer.ConfigureCameraColorTarget(xrColorAttachment);
    13.                 }
    14. #endif
    Thanks!