Fixing mesh smearing on Apple Vision Pro with scene.autoClear=false

Hi folks!

I’m currently testing my application in the Apple Vision Pro simulator, and I’m noticing mesh smearing on the device that I do not see on other XR devices (Quest 3, Pico 4). The issue occurs when setting scene.autoClear=false, even with a skybox.

I’ve recreated the issue here: https://www.babylonjs-playground.com/#0S6RYJ#5. This is a scene with some simple meshes and a skybox. If you test this with the immersive web simulator, there is no smearing, and the playground functions as expected. On vision pro in immersive-vr mode, there is a ton of smearing.

Is the apple vision pro behavior expected? Setting autoClear=false gives a desired small FPS boost, so I would prefer to leave it on. I had come to understand that using a skybox would fix the autoClear smoothing issue, since it would rewrite the framebuffer every scene, but I could see this being an optimization on the Apple side.

Screenshot attached:

Thanks for any help!

1 Like

Hey!

So, I still don’t have a device. I only use the emulator. And the emulator renders this scene correctly. I also use vision OS 1.1-beta , so this is something they might have fixed by now:

I will ask team members with a device to try rendering this on the device to make sure it all works correctly.

1 Like

Thanks, I’ll try this again with the vision pro simulator they released yesterday!

1 Like

Hey @RaananW,
I’m unfortunately still able to reproduce the bug after I updated everything to latest (Baylon version, Xcode version, visionOS simulator version). The first time I load the page after setting the XR feature flags, everything works correctly, as you were seeing. However, on subsequent refreshes of the page, the bug starts to appear again. I’ll ask one of my teammates with a device to see if they can repro as well. I’m wondering if some state is corrupted on my machine.

1 Like

i’ll test again on the emulator. this is obviously a clearing issue, but there shouoldn’t be one TBH…

1 Like

Was about to dive in a debug this further, and then…

image

Fighting this right now, will debug right after :slight_smile:

This seems to be an issue with the emulator. On a real device this playground works as expected. I wouldn’t want to add a force-clear just for the emulator

1 Like

Thanks for confirming, I’ll reach out to apple support to see if they have a fix for the emulator! I can just toggle autoClear for the AVP emulator for now. My teammate also has everything working on the actual device.