New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 875187 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 14
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Regression
Proj-VR
Proj-XR
Proj-XR-VR



Sign in to add a comment

re-enter VR and no gamepads

Reported by stephent...@gmail.com, Aug 17

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36

Steps to reproduce the problem:
1. enter Chrome VR with Vive
2. run https://threejs.org/examples/?q=vive#webvr_vive_paint
3. enter VR
4. paint
5. exit VR
6. enter VR
7. try to paint

What is the expected behavior?
painting works in step 7

What went wrong?
painting does not work

navigator.getGamepads() returns [null, null, null, null]

Did this work before? Yes  68.0.3440.106

Does this work in other browsers? Yes

Chrome version: 70.0.3525.0  Channel: canary
OS Version: 10.0
Flash Version: 

could be related to https://bugs.chromium.org/p/chromium/issues/detail?id=873409 but issue here is not with XR



 

Comment 1 Deleted

Labels: Needs-Bisect Needs-Triage-M70
Cc: phanindra.mandapaka@chromium.org
Components: UI>Browser>VR
Labels: Triaged-ET TE-Hardware-Dependency
Thanks for filling the issue...

As per comment #0 issue seems to be VR related, not available at our end. Hence adding "TE-Hardware-Dependency" label to it and requesting respective team to have a look in to it for further inputs on it. 

Thanks..!  
Cc: klausw@chromium.org offenwanger@chromium.org billorr@chromium.org
klausw@, offenwanger@ - could one of you verify/investigate?
Components: -UI>Browser>VR Blink>WebXR>VR
Labels: -Type-Bug FoundIn-70 Type-Bug-Regression
Owner: offenwanger@chromium.org
Variant on the issue.  In older Chrome, gamepads also continue to work when not in VR mode at all.  This is probably not too important in most production use, but is often helpful when debugging.

It would also be useful if the gamepads worked even without entering VR mode in the first place.  Logically, and in the API, gamepads and VR display are independent.  I can see that this may be difficult in the implementation when they are driven by the same hardware.
Owner: klausw@chromium.org
Labels: -Pri-3 Pri-1
Status: Started (was: Unconfirmed)
Raising priority since there are multiple related controller-related issues here.

Controllers only working for one session is apparently caused by mojo communication breaking when the render loop thread is stopped and resumed. When the second session is started, the isolated gamepad fetcher's have_outstanding_request_ is true, but the callback doesn't get executed.

For comparison, on the first session, have_outstanding_request_ becomes true when the non-immersive session starts, and the stored callback is executed by the mojo service's AcceptWithResponder after RequestGamepadProvider runs on the start of the immersive session.

The stored-callback approach for the isolated gamepad provider also seems to suffer from excessive latency, it appears that poses are reused for 2-3 frames. This is visible when holding a controller in front of your face while turning your torso, the controller image appears doubled or tripled and is noticeably laggy.
FYI, I filed issue 878181 to track the excessive latency separately.
Project Member

Comment 11 by bugdroid1@chromium.org, Aug 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d605bd014db7b9628b512a3eabbf375524133e2

commit 4d605bd014db7b9628b512a3eabbf375524133e2
Author: Klaus Weidner <klausw@chromium.org>
Date: Wed Aug 29 15:50:13 2018

Don't shut down OpenVR render loop on connection errors

A normal immersive session shutdown triggers this error handler,
and stopping the render loop lost a pending gamepad_callback_,
so future immersive sessions weren't seeing the controllers
anymore. Instead, keep the render loop running, it'll be cleaned
up when exiting the page entirely.

BUG= 875187 

Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I89a333a9cd104069d6e228248608957bec665a91
Reviewed-on: https://chromium-review.googlesource.com/1194252
Reviewed-by: Bill Orr <billorr@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587130}
[modify] https://crrev.com/4d605bd014db7b9628b512a3eabbf375524133e2/device/vr/openvr/openvr_device.cc

Status: Fixed (was: Started)
This should be fixed by r587130 in Chrome Canary >=  70.0.3536.0.
Thank you, I can confirm gamepads now working in 71.0.3552.2 when we leave and reenter VR mode.

As I mentioned earlier (comment 7), it would be good for development if gamepads could also work outside VR mode, as they used to (e.g. 67.0.3393.0)  Not a serious issue, though.

Sign in to add a comment