Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Issue 2541023003: WebVR: Add sanity checks for decoded pose index values (Closed)

Created:
4 years ago by klausw
Modified:
4 years ago
Reviewers:
mthiesse, bajones
CC:
chromium-reviews, feature-vr-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

WebVR: Add sanity checks for decoded pose index values We seem to be getting glitches in the display pipeline that manifest as all-white pixels for a few frames before regular rendering starts. These get misinterpreted as an invalid pose index, and apparently supplying a wrong pose to GVR permanently breaks reprojection for that instance. Add sanity checks to help identify and avoid bad pose values during initialization. BUG=667327 Committed: https://crrev.com/490f4294847d427265ae138de9932926d61b885e Cr-Commit-Position: refs/heads/master@{#435866}

Patch Set 1 #

Total comments: 6

Patch Set 2 : Add "is valid pose" flag and magic number. #

Patch Set 3 : Add VLOG to the "not a valid pose" branch #

Patch Set 4 : Add VLOG to the "not a valid pose" branch (try #2) #

Patch Set 5 : Add counter to skip the first few valid frames #

Patch Set 6 : Add longer wait, 10 frames was not sufficient. Less verbose vlog. #

Total comments: 4

Patch Set 7 : Revert pose wait hack, add constants for magic numbers #

Patch Set 8 : Work around bogus initialization warning #

Unified diffs Side-by-side diffs Delta from patch set Stats (+69 lines, -13 lines) Patch
M chrome/browser/android/vr_shell/vr_shell.h View 1 5 6 2 chunks +2 lines, -0 lines 0 comments Download
M chrome/browser/android/vr_shell/vr_shell.cc View 1 2 3 4 5 6 7 5 chunks +54 lines, -11 lines 0 comments Download
M device/vr/android/gvr/gvr_device_provider.cc View 1 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/vr/VRDisplay.cpp View 1 2 3 4 5 6 7 2 chunks +11 lines, -2 lines 0 comments Download

Messages

Total messages: 23 (8 generated)
klausw
4 years ago (2016-12-01 03:46:42 UTC) #2
klausw
This doesn't quite seem to do it yet, I'll add an extra sanity check to ...
4 years ago (2016-12-01 05:20:05 UTC) #3
mthiesse
https://codereview.chromium.org/2541023003/diff/1/chrome/browser/android/vr_shell/vr_shell.cc File chrome/browser/android/vr_shell/vr_shell.cc (left): https://codereview.chromium.org/2541023003/diff/1/chrome/browser/android/vr_shell/vr_shell.cc#oldcode634 chrome/browser/android/vr_shell/vr_shell.cc:634: head_pose = webvr_head_pose_[webvr_pose_frame % kPoseRingBufferSize]; You should make webvr_head_pose_ ...
4 years ago (2016-12-01 15:39:11 UTC) #5
klausw
https://codereview.chromium.org/2541023003/diff/1/chrome/browser/android/vr_shell/vr_shell.cc File chrome/browser/android/vr_shell/vr_shell.cc (left): https://codereview.chromium.org/2541023003/diff/1/chrome/browser/android/vr_shell/vr_shell.cc#oldcode634 chrome/browser/android/vr_shell/vr_shell.cc:634: head_pose = webvr_head_pose_[webvr_pose_frame % kPoseRingBufferSize]; On 2016/12/01 15:39:11, mthiesse ...
4 years ago (2016-12-01 16:10:18 UTC) #6
klausw
PTAL. The changes so far had not fixed it, I haven't seen the "not valid ...
4 years ago (2016-12-01 19:50:41 UTC) #7
klausw
I've increased the min valid pose counter, I was testing with 120 frame wait and ...
4 years ago (2016-12-01 20:51:31 UTC) #8
mthiesse
https://codereview.chromium.org/2541023003/diff/100001/chrome/browser/android/vr_shell/vr_shell.h File chrome/browser/android/vr_shell/vr_shell.h (right): https://codereview.chromium.org/2541023003/diff/100001/chrome/browser/android/vr_shell/vr_shell.h#newcode213 chrome/browser/android/vr_shell/vr_shell.h:213: static constexpr int webvr_min_valid_poses_ = 60; I don't think ...
4 years ago (2016-12-01 21:53:16 UTC) #9
klausw
PTAL https://codereview.chromium.org/2541023003/diff/100001/chrome/browser/android/vr_shell/vr_shell.h File chrome/browser/android/vr_shell/vr_shell.h (right): https://codereview.chromium.org/2541023003/diff/100001/chrome/browser/android/vr_shell/vr_shell.h#newcode213 chrome/browser/android/vr_shell/vr_shell.h:213: static constexpr int webvr_min_valid_poses_ = 60; On 2016/12/01 ...
4 years ago (2016-12-01 22:36:04 UTC) #10
mthiesse
lgtm New compositor path *cannot come soon enough*
4 years ago (2016-12-01 22:38:46 UTC) #11
bajones
LGTM, where "G" == "Generally acceptable at this time for getting around a hard problem ...
4 years ago (2016-12-01 23:50:03 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2541023003/120001
4 years ago (2016-12-02 02:24:50 UTC) #14
commit-bot: I haz the power
Try jobs failed on following builders: blimp_linux_dbg on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/blimp_linux_dbg/builds/42447)
4 years ago (2016-12-02 02:36:06 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2541023003/140001
4 years ago (2016-12-02 04:30:21 UTC) #19
commit-bot: I haz the power
Committed patchset #8 (id:140001)
4 years ago (2016-12-02 05:58:34 UTC) #21
commit-bot: I haz the power
4 years ago (2016-12-02 06:00:26 UTC) #23
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/490f4294847d427265ae138de9932926d61b885e
Cr-Commit-Position: refs/heads/master@{#435866}

Powered by Google App Engine
This is Rietveld 408576698