Hi,
I recently got a Quest 3 and realised that my games were flickering when in VR (WebXR). This flickering does not happen on the Quest 2. The flickering does not happen on the Quest 3 if multiview is disabled.
The flickering occurs whenever a gui element is redrawn, so moving the pointer over a button, scrolling a window, etc…
The items that flicker are all on rendering group 0. Items on rendering groups > 0 do not flicker.
Here is a playground showing the issue by creating a number of spheres with rendering group Ids from 0 to 3 and a button that when hovered briefly creates the flicker: https://playground.babylonjs.com/#9K3MRA#1430
To confirm - the flickering occurs whether items are set renderingGroupIds or not, its just that items on the default rendering group Id (0) will always flicker when the gui updates. See https://playground.babylonjs.com/#9K3MRA#1435
So! The best solution I can suggest is to close the eyes every time the GUI updates!
Joke aside - I can totally reproduce this. It is probably related to an incorrect clear call somewhere along the way. I’ll debug this and hopefully find a solution soon.
YES! oh wow, i totally forgot to answer here. Yes, it should be fixed with this one. This is one of the demos I am testing with this PR. Sorry, this PR takes longer than I wanted it to.
Hi @RaananW - I still get the flickering on this playground on my Quest 3, don’t you?
To get to it I opened this thread on my quest 3 and then clicked the link you provided.
I then waited until the scene loads.
Then I click the button to enter XR, and when I move the pointer over the button or I click it, it flickers in the same way as before
There seems to be an inconsistency with the XR layers implementation in different quest versions. The Quest 3, for some odd reason, doesn’t take the clearOnStart variable and still clears the texture. I’ll see how I can override this. A way to override this is not to use the WebXR layers multiview feature, and instead just use the standard XR pipeline, until the issue is resolved.
I will see if i can get someone in Meta to look into it.
There seems to be an inconsistency with the XR layers implementation in different quest versions. The Quest 3, for some odd reason, doesn’t take the clearOnStart variable and still clears the texture. I’ll see how I can override this. A way to override this is not to use the WebXR layers multiview feature, and instead just use the standard XR pipeline, until the issue is resolved.
I will see if i can get someone in Meta to look into it.
Will this reduce performance for the Quest 3? Or will it stop the anti-aliasing? If so, I would prefer to just move everything to a rendering group greater than 0, which will solve the issue.