New issue
Advanced search Search tips

Issue 878181 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Proj-VR
Proj-XR
Proj-XR-VR



Sign in to add a comment

excessive controller latency in SteamVR/Oculus

Project Member Reported by klausw@chromium.org, Aug 28

Issue description

[forked from  issue 875187 ]

Steps to reproduce the problem:
1. enter Chrome VR with Vive
2. Open a controller-using page such as https://webvr.info/samples/XX-vr-controllers.html
3. Hold controller in front of you while turning torso

Observed behavior: controller image is laggy, showing a double or triple image

Expected behavior: controller image should stay stable, following a smooth rotation
 
The default gamepad polling interval was reduced from 16ms to 4ms today independently of this, see https://chromium-review.googlesource.com/c/chromium/src/+/1191234. That change reduced controller lag from ~44ms to ~22ms, but it still appears doubled.
Experimental approach in https://chromium-review.googlesource.com/c/chromium/src/+/1195104 . This greatly increases smoothness, but needs a change to the core GamepadProvider API.
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 11

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

commit 59af5e55b9189cad106efc654195d3737f43690e
Author: Klaus Weidner <klausw@chromium.org>
Date: Tue Sep 11 01:11:27 2018

Add pose age TRACE_COUNTERs for VR/XR gamepads

This helps provide an estimate how old the poses are when polled
by the gamepad API and when read from JavaScript.

BUG=878181

Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I623b876cff559709ff858d9df0ee1df33b736481
Reviewed-on: https://chromium-review.googlesource.com/1200569
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590159}
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/device/gamepad/gamepad_data_fetcher.cc
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/device/gamepad/gamepad_data_fetcher.h
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/device/vr/isolated_gamepad_data_fetcher.cc
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/device/vr/oculus/oculus_gamepad_helper.cc
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/device/vr/openvr/openvr_gamepad_helper.cc
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/device/vr/public/mojom/isolated_xr_service.mojom
[modify] https://crrev.com/59af5e55b9189cad106efc654195d3737f43690e/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 12

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

commit 6f249ed182f1068a17e4e3f4fe750494e4f6632f
Author: Klaus Weidner <klausw@chromium.org>
Date: Wed Sep 12 19:33:52 2018

OpenVR render loop: yield before updating controllers

The render loop tends to be busy in WaitGetPoses, so yield execution
to give the event loop a chance to process incoming mojo messages
including requesting a new gamepad callback.

BUG=878181

Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I28ceebf97be51ef4dfaac0a5c2252d0704a5aa6a
Reviewed-on: https://chromium-review.googlesource.com/1200390
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590787}
[modify] https://crrev.com/6f249ed182f1068a17e4e3f4fe750494e4f6632f/device/vr/openvr/openvr_render_loop.cc
[modify] https://crrev.com/6f249ed182f1068a17e4e3f4fe750494e4f6632f/device/vr/openvr/openvr_render_loop.h

Tested this on Canary 73.0.3653.1, still getting heavy stuttering with Vive Pro controllers. On Firefox it's perfectly smooth

Sign in to add a comment