Search Issue Tracker

Feature Request

Votes

0

Found in

2021.3.40f1

2022.3.38f1

6000.0.11f1

Issue ID

UUM-76220

Regression

No

MotionVectorsPersistentData.Update breaks rendering with IndexOutOfRangeException when rendering more than 2 XRViews

--

-

Steps to reproduce:
1. Download the attached user's project "XRSDKSmartCaveRenderingURP.zip"
2. Download the attached custom package "Custom.package.xr.sdk.zip" and add it to the project
3. Load the SmartCave XR plugin in XR Plugin Management
4. Open the "Display.scene" scene and enter Play Mode
5. Observe the loaded window with only 2 XR Views being rendered

Expected Results: all 4 XR Views are rendered
Actual Results: only 2 XR views are rendered, while others remain black

Reproducible on: 2021.3.40f1, 2022.3.38f1, 6000.0.11f1

Testing Environment: Windows 11
Not reproducible on: No other environment tested

Notes:
-Console Error:
IndexOutOfRangeException: Index was outside the bounds of the array.
UnityEngine.Rendering.Universal.MotionVectorsPersistentData.Update (UnityEngine.Rendering.Universal.CameraData& cameraData) (at ./Library/PackageCache/com.unity.render-pipelines.universal@16.0.6/Runtime/MotionVectors.cs:82)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderSingleCamera (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.CameraData& cameraData) (at ./Library/PackageCache/com.unity.render-pipelines.universal@16.0.6/Runtime/UniversalRenderPipeline.cs:747)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderCameraStack (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera baseCamera) (at ./Library/PackageCache/com.unity.render-pipelines.universal@16.0.6/Runtime/UniversalRenderPipeline.cs:968)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, System.Collections.Generic.List`1[T] cameras) (at ./Library/PackageCache/com.unity.render-pipelines.universal@16.0.6/Runtime/UniversalRenderPipeline.cs:415)
UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, System.Collections.Generic.List`1[T] cameras) (at <e509afeff7384f24a8f0ac30527ff01c>:0)
UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, System.IntPtr loopPtr, UnityEngine.Object renderRequest, Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle safety) (at <e509afeff7384f24a8f0ac30527ff01c>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
Render Pipeline error : the XR layout still contains active passes. Executing XRSystem.EndLayout() right now.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

  1. Resolution Note:

    The repro project uses a custom XR provider to render more than 2 eyes.
    Right now MotionVector pass in URP can only handle 2 eyes maximum. This is a feature request to extend MotionVector pass in URP to support arbitrary number of XRPass.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.