Skip to content
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

WebXR mode does not time out when it fails #4765

Open
3 tasks done
petr-hajek opened this issue Apr 30, 2024 · 4 comments
Open
3 tasks done

WebXR mode does not time out when it fails #4765

petr-hajek opened this issue Apr 30, 2024 · 4 comments
Labels
flag: not model-viewer Problems that are related to our project but are ultimately some other project's issue

Comments

@petr-hajek
Copy link

Description

  1. Go to https://modelviewer.dev/ with affected device
  2. click the AR button for the default model
  3. Console logs: Attempting to present in AR with WebXR...
  4. Nothing happens. It never times out to try the SceneViewer. Clicking the AR button again does not do anything.
    When tested with SceneViewer as a first option it works.
    Expected:
    Underlying issue is related to Samsung (or Chrome), but it should still fail gracefully and try SceneViewer in case there's some issue with WebXR.
    Problem will be somehwere here, that this await never times out:
    await arRenderer.present(this[$scene], this.xrEnvironment);

Live Demo

https://modelviewer.dev/

Version

  • model-viewer: v3.4.0
    Tested also with 3.5.0 and occurs as well

Browser Affected

  • Chrome, version: 124.0.6367.82

OS

  • Android v14
    Replicated on Samsung S24+ and S22+
    Affects OS with One UI 6.1. Tested on one device, it started occuring ater updating from One UI 6.0 to 6.1.

AR

  • WebXR
@elalish
Copy link
Collaborator

elalish commented May 1, 2024

@bialpio @toji This looks like a WebXR regression; can you repro?

@elalish elalish added the flag: not model-viewer Problems that are related to our project but are ultimately some other project's issue label May 1, 2024
@toji
Copy link

toji commented May 2, 2024

At the moment I only have Pixel devices on hand, but I can confirm that the Pixel 6, 7, and 8 are not seeing this regression on Android 14, so it's likely something to do with the Samsung software like @petr-hajek theorized.

That said, there's a few different places in the ARRenderer that the await could be getting hung up on, and it would be helpful to know which is was. Some would be more practical to put timeout logic around than others.

rAF:

Session:

const currentSession = await this.resolveARSession();

Reference Space:

const viewerRefSpace = await currentSession.requestReferenceSpace('viewer');

@alcooper91
Copy link

Can you also provide the full chrome://version string including the bitness of Chrome? (32 vs 64)?

@petr-hajek
Copy link
Author

@alcooper91 Chrome: 124.0.6367.113 (Official Build) (64-bit)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flag: not model-viewer Problems that are related to our project but are ultimately some other project's issue
Projects
None yet
Development

No branches or pull requests

4 participants