Single Pass Instanced VR Application Only Renders in Left Eye

I have a VR application that was ported to run on AVP and have found that when running on device the application only renders in the left eye. My VR application uses the Unity built-in render pipeline and all shaders have been updated to support Single Pass Instanced rendering. I have also confirmed that the project was built with the Single Pass Instanced Render Mode selected.

In troubleshooting this issue I created a project from the Unity 3D Core template, added the AVP XR package to it, configured the AVP XR plugin to run in unbounded VR mode and target the device, converted the SampleScene main camera to an XR camera, added an ARSession component to the root, then finally added a floor plane and a blue cube in the center. When the application is built and run on an AVP device it only renders in the left eye and the right eye remains blank.

I have uploaded the sample project I created to test this here.

Hey! Thanks for sharing a repro project. I’m not able to test this out today but I don’t see anything out of the ordinary here. Monday is a holiday, but I’ll dig into this first thing Tuesday.

1 Like

We have a similar issue (with our VR project using built-in render pipeline) only displaying in the left eye on device. In addition, the content isn’t anchored and just moves with my head (we have an ARSession object but haven’t used any other scripts on the content). We also never see the grey window that says “Loading” go away…

We see the following printed in Xcode logs:

Screen position out of view frustum (screen pos 0.000000, 0.000000, 1000.000000) (Camera rect 0 0 0 0)
Presenting a drawable without a device anchor. This drawable won’t be presented.

Here’s a link to our repro project:
[Screen position out of view frustum (screen pos 0.000000, 0.000000, 1000.000000) (Camera rect 0 0 0 0)
Presenting a drawable without a device anchor. This drawable won’t be presented.]

Here’s a link to our repro project (just a black sky sphere and floating cube):

We are on Unity 2022.3.10 with VisionOS Beta 3 and Xcode Beta 8… Any help is much appreciated!

Mike

Are you using the TrackedPoseDriver (Input System) component on your head GameObject with a Position Input binding of [AR Handheld Device] devicePosition and a Rotation Input binding of [AR Handheld Device] deviceRotation?

The “Loading” window not going away is a known issue; I believe it is still listed in the release notes as pending a fix. We just close it after the application gets started.

Unity has a repro project to work on a fix for this: VR Applications Constantly Spam the Console. We do our best just to ignore the output for now.

As far as I am aware, 2022.3.9f1 is the only version currently supported based on the release notes.

Thanks for the tips!!! I’m new to ARFoundation (and the new input system), so I didn’t realize I needed more than a Camera to get tracking working. I’ll give TrackedPoseDriver a shot

1 Like

Hi there! Glad to see you folks helping each other out :slight_smile:

I just wanted to check in and confirm that I am seeing this behavior on my end. The left eye looks correct but the right eye renders only black, though I can see the “Loading…” window.

I also see the Screen position out of view frustum (screen pos 0.000000, 0.000000, 1000.000000) (Camera rect 0 0 0 0) message printed to the console… this is definitely unexpected and may be a hint as to what is going wrong. I’ll keep investigating, but the fact that I can replicate the issue is a start!

1 Like

Good news, everyone!

I was able to fix the issue, and confirm the fix worked in the VR Core template project. It didn’t make it into the 0.4.1 version that shipped yesterday, but we should be getting it out in a 0.4.2 version very soon. There is no way to work around the issue in the meantime, unfortunately.

Thanks for your patience, and for reporting the issue!

1 Like

Awesome, great work! Looking forward to checking it when the update drops