New issue
Advanced search Search tips

Issue 736023 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
Proj-XR

Blocking:
issue 714850



Sign in to add a comment

WebVR: inconsistent getFrameData while not presenting

Project Member Reported by klausw@chromium.org, Jun 22 2017

Issue description

(Forked from  issue 714850  "Site https://playcanv.as/p/sAsiDvtC/ shows black screen in presentation mode")

Current Chrome behavior is that vrDisplay.getFrameData can be called from either window.rAF or vrDisplay.rAF callbacks, but only vrDisplay.rAF scheduling updates poses. If an application only uses window.rAF while not presenting, the returned pose will always be null.

The current spec https://w3c.github.io/webvr/spec/1.1/#dom-vrdisplay-getframedata is not very illuminating here and should be clarified, I filed https://github.com/w3c/webvr/issues/246 for that.

Depending on how the spec issue gets resolved, calling getFrameData from window.rAF callbacks should either work with fresh poses, or return false and/or raise a usage warning or error if it's decided that's not compliant.
 

Comment 1 by klausw@chromium.org, Jun 22 2017

Labels: Proj-VR

Comment 2 by klausw@chromium.org, Jun 22 2017

Blocking: 714850
Owner: bajones@chromium.org
Status: Assigned (was: Untriaged)
bajones, please help clarify this so we can implement the correct behavior. See https://github.com/w3c/webvr/issues/246#issuecomment-310792498.
Owner: ----
Status: Available (was: Assigned)
We have a decision (https://github.com/w3c/webvr/issues/246#issuecomment-312034190), so we can start implementing this.
The new wording of the spec says:
* getFrameData should return empty frame data except when called in VRDisplay.RAF
* submitFrame should be ignored except when called in VRDisplay.RAF.

I think the fix is simply to check in getFrameData that in_animation_frame_ is true.

The code to get poses for non-presenting already exists and seems to work.

This will be a behavior change, so it should be publicized as appropriate.
Owner: billorr@chromium.org
Status: Started (was: Available)
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 19 2017

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

commit 14020f57ee8a8bc8cce58c3fc694cfc00c2d0467
Author: Bill Orr <billorr@chromium.org>
Date: Wed Jul 19 20:57:52 2017

WebVR: Update VRDisplay.GetFrameData to follow the current spec.

The WebVR 1.1 spec was updated to clarify the behavior of getFrameData.
Now, GetFrameData should return false unless called within a
VRDisplay.requestAnimationFrame callback.

BUG= 736023 

Change-Id: I14d9442a016817a78232ed7b1e71956c8dac614a
Reviewed-on: https://chromium-review.googlesource.com/578188
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Bill Orr <billorr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487970}
[add] https://crrev.com/14020f57ee8a8bc8cce58c3fc694cfc00c2d0467/third_party/WebKit/LayoutTests/vr/getFrameData_windowRAF.html
[modify] https://crrev.com/14020f57ee8a8bc8cce58c3fc694cfc00c2d0467/third_party/WebKit/Source/modules/vr/VRDisplay.cpp

Labels: -M-61 M-62
Project Member

Comment 10 by bugdroid1@chromium.org, Jul 20 2017

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

commit 432c71746d715b3597d53dc28c35635569e1ef44
Author: Bill Orr <billorr@chromium.org>
Date: Thu Jul 20 20:48:49 2017

Revert "WebVR: Update VRDisplay.GetFrameData to follow the current spec."

This reverts commit 14020f57ee8a8bc8cce58c3fc694cfc00c2d0467.

Reason for revert: Hold off on API breaking change till M62, so we can have several that go out at the same time and we'll have a new origin trial.

Original change's description:
> WebVR: Update VRDisplay.GetFrameData to follow the current spec.
> 
> The WebVR 1.1 spec was updated to clarify the behavior of getFrameData.
> Now, GetFrameData should return false unless called within a
> VRDisplay.requestAnimationFrame callback.
> 
> BUG= 736023 
> 
> Change-Id: I14d9442a016817a78232ed7b1e71956c8dac614a
> Reviewed-on: https://chromium-review.googlesource.com/578188
> Reviewed-by: Brandon Jones <bajones@chromium.org>
> Commit-Queue: Bill Orr <billorr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#487970}

TBR=bajones@chromium.org,bsheedy@chromium.org,billorr@chromium.org

Change-Id: Ia0491a7af887c6149b69178747f6a0e6a9b5f3d2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  736023 
Reviewed-on: https://chromium-review.googlesource.com/580167
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488396}
[delete] https://crrev.com/237f82767da3bbdcd8d6ad3fa4449ef6a3fe8bd3/third_party/WebKit/LayoutTests/vr/getFrameData_windowRAF.html
[modify] https://crrev.com/432c71746d715b3597d53dc28c35635569e1ef44/third_party/WebKit/Source/modules/vr/VRDisplay.cpp

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 8 2017

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

commit 8014f8ecc3fbd8d1dea102929fc13f17f0aeb505
Author: Bill Orr <billorr@chromium.org>
Date: Tue Aug 08 01:31:06 2017

Reland "WebVR: Update VRDisplay.GetFrameData to follow the current spec."

This is a reland of 14020f57ee8a8bc8cce58c3fc694cfc00c2d0467
Original change's description:
> WebVR: Update VRDisplay.GetFrameData to follow the current spec.
> 
> The WebVR 1.1 spec was updated to clarify the behavior of getFrameData.
> Now, GetFrameData should return false unless called within a
> VRDisplay.requestAnimationFrame callback.
> 
> BUG= 736023 
> 
> Change-Id: I14d9442a016817a78232ed7b1e71956c8dac614a
> Reviewed-on: https://chromium-review.googlesource.com/578188
> Reviewed-by: Brandon Jones <bajones@chromium.org>
> Commit-Queue: Bill Orr <billorr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#487970}

Bug:  736023 
Change-Id: Ib2020621f70152f7399899d91db283c90df7026f
Reviewed-on: https://chromium-review.googlesource.com/604667
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Bill Orr <billorr@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492493}
[add] https://crrev.com/8014f8ecc3fbd8d1dea102929fc13f17f0aeb505/third_party/WebKit/LayoutTests/vr/getFrameData_windowRAF.html
[modify] https://crrev.com/8014f8ecc3fbd8d1dea102929fc13f17f0aeb505/third_party/WebKit/Source/modules/vr/VRDisplay.cpp

Status: Fixed (was: Started)
Components: Blink>WebXR

Sign in to add a comment