WebVR: inconsistent getFrameData while not presenting |
||||||||
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.
,
Jun 22 2017
,
Jun 26 2017
bajones, please help clarify this so we can implement the correct behavior. See https://github.com/w3c/webvr/issues/246#issuecomment-310792498.
,
Jun 29 2017
We have a decision (https://github.com/w3c/webvr/issues/246#issuecomment-312034190), so we can start implementing this.
,
Jul 19 2017
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.
,
Jul 19 2017
code review: https://chromium-review.googlesource.com/578188
,
Jul 19 2017
,
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
,
Jul 20 2017
,
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
,
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
,
Aug 8 2017
,
Jul 4
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by klausw@chromium.org
, Jun 22 2017