GUI elements cause flickering on Meta Quest 3 with WebXR multiview layers

Hello!

I have just turned on multiview in my WebXR application, and the entire scene is flickering whenever a GUI element is present. I am on Meta Quest 3 OS v76.1020 with browser version v38.1. This issue occurs with WebXR chrome flags on and off. For now, I’ve just rolled back multiview, but I would love to be able to enable it for the performance benefits.

I found a similar bug to this with this playground to repro: https://playground.babylonjs.com/?snapshot=refs/pull/14753/merge#9k3mra#1430.

The issue seems to be worse with scene.clearColor set, as the scene will flicker entirely with the clearColor: https://playground.babylonjs.com/?snapshot=refs/pull/14753/merge#9K3MRA#1942.

Thanks for any help you can provide! I will also try to reach out to the folks at Meta, since it could be an issue on their side.

cc @RaananW

Thanks for reporting, I will look into that soon (probably next week). Assigning to me :slight_smile:

I had my teammates validate this behavior on Quest 1 and Quest 2. They said that it does happen on Quest 1, but they could not reproduce it on Quest 2.

I also reached out to some folks at Meta on the WebXR discord, and they replied, “flickering with multiview usually indicates that you’re switching rendertargets mid-session. That is done by design in the multiview extension and not an issue with the Quest browser.” Hopefully that adds some helpful context!

Just making sure - are you using the latest babylon version? The playgrounds you pasted are both from a.specific snapshot, but I assume you also tested 8.X and it behaves the same

Sorry, I had just pasted that from the older issue. I did validate on 8.5.0, and the issue reproduces for the playground: https://playground.babylonjs.com/#9K3MRA#1942.

Hi @RaananW,
I was investigating this a bit more, and I found that the bug does not occur when using the OVR_multiview2 gl extension, but does occur with the oculus_multiview extension. I’m able to avoid the bug by setting this before creating the scene:

engine.getCaps().oculusMultiview = null;

pg: https://playground.babylonjs.com/#9K3MRA#1980

This workaround doesn’t seem great, and it would be preferable to use the oculus_multiview, since that has msaa.

Have you had a chance to look at this at all?

Thanks again!

(as in my next answers to anything in the forum - sorry for a very late reply :slight_smile: )

if it is an oculus-extension only issue, there is probably little we can do, but I actually need to check if they have already fixed it. We had an issue like that with multiview in the oculus browser which was an issue with the browser itself and was resolved by the team. I’m assigning this to me, will debug this later.

EDIT - issue is still present. I will try reaching out to the oculus team and see if they have some input