-
-
Notifications
You must be signed in to change notification settings - Fork 35.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
makeXRCompatible call causes WebGL ContextLost error in a PCVR setup with Meta Quest Link #30674
Comments
@cabanier Can you give us a advice here? Is three.js/src/renderers/webxr/WebXRManager.js Lines 391 to 395 in 537d396
|
Yes, this is the correct way of calling this function. (It's a no-op in the Quest Browser) |
sometimes the first frame loads, but the scene is not updating, related bug report from 2021 #23058 attaching some information from chrome://webxr-internals to aid with debugging: Device Info
Active Runtime
XRSession Info
Frame Stats
@toji I would really appreciate it if you could take a look at this, please let me know if I could help in any way. |
Description
I know these kind of issues are normally closed with the Device Issue label, but please bear with me, I think I've made some new discoveries.
I was able to reproduce the issue outlined in #30505 on a different headset (Meta Quest 3) in a PCVR setup (PC Virtual Reality, rendering on PC then output to a headset with wired or wireless connection). All of the XR examples from Three.js fail to render with the following console errors:
while the official WebXR samples work perfectly fine. The key difference between Three.js and WebXR Samples is that the WebGL rendering context is created with xrCompatible: true initially in the WebXR Samples while Three.js calls the asynchronous makeXRCompatible method before entering an XR session. I confirmed the Three.js VR examples worked after adding xrCompatible: true to https://github.com/mrdoob/three.js/blob/dev/src/renderers/WebGLRenderer.js#L353
I know the latter is the recommended approach according to spec (related to #19275), but is it possible that we're not correctly handling the lost/restored context associated with the makeXRCompatible call in Three.js? Since this is broken on both Meta Quest Link and HTC Vive with SteamVR, and the WebXR Samples work fine for both setup.
It's also possible that this is a Meta Quest Link runtime issue, so I also filed meta-quest/webxr-first-steps-react#2
Reproduction steps
Enter VR
: https://threejs.org/examples/?q=roller#webxr_vr_rollercoasterCode
Live example
Screenshots
Version
r174
Device
Headset
Browser
Chrome
OS
Windows
The text was updated successfully, but these errors were encountered: