Commit Graph

50 Commits

Author SHA1 Message Date
Daosheng Mu
dfed686aab Bug 1523923 - Cancel VR submit frame tasks when the VRDisplayHost is destroyed. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D20692

--HG--
extra : moz-landing-system : lando
2019-02-22 22:04:00 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
thomasmo
32f32b7a86 Bug 1508225 - Change return type of VRDisplayExternal::GetSensorState to a reference r=kip,dmajor
This change fixes a compiler warning, where a VRSensorState object is returned on the stack as a rather large object.
To address this warning, the return type of VRDisplayExternal::GetSensorState now returns a const reference to the member. The rest of the change are updates to uphold the new constness.

Differential Revision: https://phabricator.services.mozilla.com/D13586

--HG--
extra : moz-landing-system : lando
2018-12-18 19:39:44 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Kearwood "Kip" Gilbert
f65dbeca74 Bug 1473397 - Implement haptic feedback support for gfxVRExternal and OpenVRSession r=daoshengmu
- Implemented 1ms, 10ms, and 100ms VR tasks, dispatched from
  VRManager
- Removed Android-specific code that compensated for
  tasks that did not run when the...

...compositor was paused.

Differential Revision: https://phabricator.services.mozilla.com/D3378

--HG--
extra : moz-landing-system : lando
2018-09-25 22:56:10 +00:00
Imanol Fernandez
2072f84821 Bug 1482613 - Make WebVR work with multiprocess enabled on Android r=kip,rbarker,kvark
MozReview-Commit-ID: G9aHbp0G7DK

Differential Revision: https://phabricator.services.mozilla.com/D3152

--HG--
extra : moz-landing-system : lando
2018-08-24 15:32:12 +00:00
Cosmin Sabou
164891642a Backed out changeset 1eb34707779f (bug 1482613) for causing android crashes in test_vrDisplay_canvas2d.
--HG--
extra : amend_source : f97559dc9494fbe0120035381d8903cfc62d2830
2018-08-24 00:10:57 +03:00
Imanol Fernandez
4ee978a82d Bug 1482613 - Make WebVR work with multiprocess enabled on Android r=kip,rbarker,kvark
MozReview-Commit-ID: G9aHbp0G7DK

Differential Revision: https://phabricator.services.mozilla.com/D3152

--HG--
extra : moz-landing-system : lando
2018-08-23 18:35:15 +00:00
Kearwood Gilbert
17fa5240f0 Bug 1476797 - Indicate VR session activity indepenently of layer presence r=daoshengmu
MozReview-Commit-ID: 4F0vclSj5gB

Differential Revision: https://phabricator.services.mozilla.com/D2451

--HG--
extra : moz-landing-system : lando
2018-07-31 01:41:25 +00:00
Kearwood "Kip" Gilbert
89b524f028 Bug 1469967 - Implement immersive mode for gfxVRExternal r=rbarker
- The VR External interface/shmem and gfxVRExternal are
  updated to enable entering VR, exiting VR, and submitting
  frames.
- You can now construct gfxVRExternal using a pointer to
  the VR External API shmem, if it is created elsewhere.

MozReview-Commit-ID: LZuoLvoEmKO

--HG--
extra : rebase_source : ab38ae4c34f9ac5cdd69e7222f12b1c758307057
2018-05-08 11:31:28 -07:00
Randall Barker
2c2e0b614f Bug 1465816 - Add initial code needed to support gfxVRExternal on android r=kip,jchen
MozReview-Commit-ID: 9rXXqIvyvhp
2018-06-05 18:33:01 -07:00
Cosmin Sabou
2c1302b895 Backed out changeset 66a3146a7fce (bug 1465816) for frequent reftest failures on draw_rect.html. CLOSED TREE 2018-06-06 00:28:56 +03:00
Randall Barker
4b62519e23 Bug 1465816 - Add initial code needed to support gfxVRExternal on android r=kip,jchen
MozReview-Commit-ID: 9rXXqIvyvhp
2018-06-05 12:34:15 -07:00
Kearwood Gilbert
d0b2b8da65 Bug 1436791 - Implement gfxVRExternal,r=rbarker
- gfxVRExternal Enables other processes to present
  real or simulated VR hardware to Firefox.
- This functionality is disabled by default, under
  dom.vr.external.enabled.
- VRDisplayInfo, VRControllerInfo, and associated
  structs have been restructured to ensure internal
  state is not exposed via shmem interface.
- Some refactoring to convert structs to
  POD types, enabling them to be located
  in shmem and be memcpy'd.
- Work needed before unpreffing marked
  with "TODO" comments.
MozReview-Commit-ID: FbsusbxuoQ8

--HG--
extra : rebase_source : 8a448169c3f47411c705a4d9fd462a1f9363dfd9
extra : amend_source : e6702549527292e2850d16e8f503f0be9848159f
2018-03-13 17:09:54 -07:00
Narcis Beleuzu
1f7fdd5826 Merge mozilla-central to inbound. r=merge a=merge on a CLOSED TREE 2017-12-06 01:49:19 +02:00
Kearwood "Kip" Gilbert
a9dbddfdba Bug 1407423 - Ensure that any time we have loaded the Oculus runtime libary, we are polling ShouldQuit,r=daoshengmu
- Ensure ovr_GetSessionStatus is polled even when a VR presentation
  is not active.
- When we fail to initialize an Oculus Session or detect VR hardware,
  immediately unload the Oculus Library as we can't poll for ShouldQuit
  without a valid Oculus session.
- When we poll ovr_GetSessionStatus, we are now updating the mounted state
  in VRDisplayInfo::mIsMounted.
- Added prefs to control enumeration throttling and timeout to release
  VR hardware when inactive.
- Some refactoring to make frame loop more understandable and less
  brittle.
- When throttling enumeration, we ensure that all other VR apis
  also throttle enumeration so that they don't pick up the same device
  during throttling.
- Some long functions in VRManager have been broken up and
  had their inner-workings documented in more detail.

MozReview-Commit-ID: CEYwwQ9mYd0

--HG--
extra : rebase_source : b2ab0dfc17b9ddc06f6afafdf69497fb9418fd47
2017-10-10 14:42:37 -07:00
Daosheng Mu
f1d6f336e7 Bug 1392217 - Part 2: Spawn a VR submit thread in VRDisplayHost; r=kip
MozReview-Commit-ID: 5xvTepEFxe0

--HG--
extra : rebase_source : 06abace030391e0840de11ad6e645fe820f94420
2017-11-17 16:06:59 +08:00
Daosheng Mu
6e5d5d2b20 Bug 1411838 - Part 2: Fix non thread-safe objects in VR; r=kip
MozReview-Commit-ID: EzbNWU17qAP

--HG--
extra : rebase_source : ab04d09ad82b6e4acd6f20d60108672d20e0b843
2017-11-09 10:54:36 +08:00
Randall Barker
b2e368e0ca Bug 1413362 - part 2: Gecko gfx/vr GVR WebVR implementation r=kip,daoshengmu
MozReview-Commit-ID: HWaXhQo0VML
2017-11-07 10:50:14 -08:00
Sebastian Hengst
f2944960ec Backed out 3 changesets (bug 1413362) for causing merge conflicts. r=merge a=merge
Backed out changeset 8b15dfaeecaa (bug 1413362)
Backed out changeset 2d9da0d19d04 (bug 1413362)
Backed out changeset 653c66220a5f (bug 1413362)

--HG--
extra : amend_source : e5c12297b0bb6ebe27a2481e4aac6c0ca8160a1b
2017-11-07 12:41:11 +02:00
Randall Barker
b1f0bd8a25 Bug 1413362 - part 2: Gecko gfx/vr GVR WebVR implementation r=kip,daoshengmu
MozReview-Commit-ID: HWaXhQo0VML
2017-11-06 17:43:28 -08:00
Daniel Holbert
126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Daniel Holbert
ecf5ee687e Bug 1412427 part 4: Indent under-indented MPL boilerplate comments by 1 space, for consistency & alignment. (whitespace-only) r=jrmuizel
This patch was automatically generated. I found the files to be fixed in this
patch with the following command:
grep -r "^\* This Source Code" gfx

...and then I modified each of these files with the following script
(where $1 is the filename to be modified):
###
line1="\* This Source Code Form is subject to the terms of the Mozilla Public"
line2="\* License, v\. 2\.0\. If a copy of the MPL was not distributed with this"
line3="\* file, You can obtain one at http://mozilla\.org/MPL/2\.0/\. \*/"

# Insert 1 space at beginning:
sed -i s%"^$line1"%" $line1"% $1
sed -i s%"^$line2"%" $line2"% $1
sed -i s%"^$line3"%" $line3"% $1
###

MozReview-Commit-ID: HXBMrfnhlVr

--HG--
extra : rebase_source : de4c78563711f8366e2978c5199a5041875fbe38
2017-10-27 15:55:37 -07:00
Kearwood "Kip" Gilbert
c5a2279e20 Bug 1400457 - Isolate VR Rendering from Compositor r=daoshengmu,jgilbert
- WebVR is no longer dependent on PTexture, TextureParent,
  TextureHost, and TextureChild.  It continues to use TextureClient
  for pooling and coordinating locks with other Gecko code.
- PreserveDrawingBuffer now behaving correctly for 2d display mirroring
- Preparation for separating to VR process
MozReview-Commit-ID: 2RGOulCInSu

--HG--
extra : rebase_source : 3542b804c3def36fa74541be32d0e7cbc9698641
2017-07-21 17:30:34 -07:00
Kearwood "Kip" Gilbert
8801f82f5e Bug 1381085 - Submit VR frames with a separate ID3DDeviceContextState r=daoshengmu
- Using a separate ID3DDeviceContextState ensures
  that the WebVR context does not stomp over the
  mirrored state used by the MLGPU "Advanced" Layers rendering.

MozReview-Commit-ID: 99mfdsjFrMI

--HG--
extra : rebase_source : 599df3b1344ca1489cbb13169313dff8e767c399
2017-09-18 16:19:49 -07:00
Phil Ringnalda
173d5226f0 Backed out changeset 8e98f894a8a3 (bug 1381085) for Windows 7 failures in draw_rect.html and change_size.html
CLOSED TREE

MozReview-Commit-ID: D8RWiRfUPL9
2017-09-20 19:39:36 -07:00
Kearwood "Kip" Gilbert
fcc8fcf709 Bug 1381085 - Submit VR frames with a separate ID3DDeviceContextState r=daoshengmu
- Using a separate ID3DDeviceContextState ensures
  that the WebVR context does not stomp over the
  mirrored state used by the MLGPU "Advanced" Layers rendering.
MozReview-Commit-ID: 99mfdsjFrMI

--HG--
extra : rebase_source : fdcdcb55185048cfb54163f51aca70409a1aa74a
2017-09-18 16:19:49 -07:00
Kearwood "Kip" Gilbert
bcd45085c6 Bug 1394561 - Ensure WebVR content can catch up when IPC messages are delayed r=daoshengmu,kanru
MozReview-Commit-ID: F4NKtyaNwEo

--HG--
extra : rebase_source : fb7b2fc51de6b9cf94e6d6bb1837464ec7ea528b
2017-08-31 16:29:14 -07:00
Kearwood Gilbert
21d51ec691 Bug 1310665 - macOS OpenVR Support r=daoshengmu,mattwoodrow
MozReview-Commit-ID: 9CDJpFOcFUB

--HG--
extra : rebase_source : ab1f13bd733a6f295570f58940191b333868a088
extra : source : d527620e9351a04bc70689af6a7369dd09ffeef0
2017-07-04 13:50:40 -07:00
Daosheng Mu
50f04ed171 Bug 1375816 - Part 3: VRController displayId attribute support; r=kip
MozReview-Commit-ID: CfWCYJuZaBK

--HG--
extra : rebase_source : faa7a409d619d7618784e1d80358b59625dc87e6
2017-07-14 17:01:09 +08:00
Sebastian Hengst
8689e62ade Backed out changeset 13155b1e7a48 (bug 1375816) 2017-07-18 11:48:26 +02:00
Daosheng Mu
9e15accf51 Bug 1375816 - Part 3: VRController displayId attribute support; r=kip
MozReview-Commit-ID: CfWCYJuZaBK

--HG--
extra : rebase_source : 1fdc733c56978ad87d35a323997f5058e1f35247
2017-07-14 17:01:09 +08:00
Wes Kocher
eaeabd21b5 Backed out 4 changesets (bug 1375816) for various failures including builds busted in gfxVROculus.cpp a=backout
Backed out changeset 73619b7ce23d (bug 1375816)
Backed out changeset dd09fc501f90 (bug 1375816)
Backed out changeset fd4517198d6c (bug 1375816)
Backed out changeset e15e060f034c (bug 1375816)

MozReview-Commit-ID: 9VXOC0V45NE
2017-07-17 23:18:21 -07:00
Daosheng Mu
a4e7f823f5 Bug 1375816 - Part 3: VRController displayId attribute support; r=kip
MozReview-Commit-ID: CfWCYJuZaBK

--HG--
extra : rebase_source : 1fdc733c56978ad87d35a323997f5058e1f35247
2017-07-14 17:01:09 +08:00
Kearwood "Kip" Gilbert
476b6eb5b0 Bug 1381165 - Ensure that only the first VRDisplay.submitFrame call per VRDisplay RAF callback renders and kicks off the next VR RAF callback. r=daoshengmu
MozReview-Commit-ID: L9qPfr1Jf9o

--HG--
extra : rebase_source : 78367b8efff80b6411fd0a08493742221a18ac26
2017-07-14 16:08:49 -07:00
Daosheng Mu
355cf89806 Bug 1371228 - Handling SteamVR process quit events to avoid crashes; r=kip
MozReview-Commit-ID: DBkzz06pRSu

--HG--
extra : rebase_source : 95831f0c3454bf758fa537900dbddbf4024e13dd
2017-06-22 14:32:18 +08:00
Kearwood Gilbert
eb3becc0b0 Bug 1362213 - Implement chrome-only API to manage VR sessions r=daoshengmu,kanru,smaug
- Added new chrome-only webidl methods to be used by browser UI and WebExtensions
- Implemented bitmasked group visibility for VR sessions to enable switching
  between chrome and regular content presentations.
- Implemented throttling mechanism to avoid runaway, unthrottled render loops
  for VR sessions that are hidden by group visibility bitmasks or due to
  lower level platform VR events, such as during the Oculus
  "Health and Safety Warning".
- Simplified the PVRManager IPC protocol while extending it to support
  VR session groups and later WebVR content performance profiling API's.
- Removed the last WebVR related sync IPC call.


MozReview-Commit-ID: BMEIPyYeEbq

--HG--
extra : rebase_source : 47d3682cad3d913504175b7d4c3e9d992236f097
2017-05-08 16:01:36 -07:00
Daosheng Mu
639e273a82 Bug 1336002 - Part 3: Support button touched in OpenVR and Puppet; r=kip
MozReview-Commit-ID: CMacSyuK3mv

--HG--
extra : rebase_source : 202edb4a20fdabf38ac9edda7b2dbe336f4ebc3b
2017-04-06 19:00:20 +08:00
Daosheng Mu
3905da3aea Bug 1299937 - Part 3: Implement haptic pulse for OpenVR controller; r=kip,qdot
MozReview-Commit-ID: TUIbJpyng4

--HG--
extra : rebase_source : e449c85d0e8f9a64a63929d1211dbca3fed8a4b6
2017-02-02 14:57:58 +08:00
Daosheng Mu
4a4964014f Bug 1346149 - Part 4: No longer need the index attribute in VRControllerHost; r=kip
MozReview-Commit-ID: 18KREzO4dy0

--HG--
extra : rebase_source : c1f711eaa4278d48e06ce18ccc6f2eedebb31345
2017-03-17 11:09:24 +08:00
Kearwood Gilbert
5441d7848d Bug 1345564 - Reduce sync IPC calls used by WebVR r=daoshengmu,Ehsan,kanru
- Eliminated the VRDisplay.GetImmediateSensorState sync call
  and associated code as it is no longer needed.

MozReview-Commit-ID: 7BsCKC9EbsY

--HG--
extra : rebase_source : ae2de369d156e397d919d83b6c63b10374953bae
2017-03-03 16:21:18 -08:00
Daosheng Mu
4bcfff5f8b Bug 1305891 - Part 2: Accept GamepadHand as the parameter when VRControllerHost constructs; r=kip
MozReview-Commit-ID: IYscauVw8iE

--HG--
extra : rebase_source : f11f9ec7d486f41917d687009ba1b47c933a68ba
2017-02-13 11:18:11 +08:00
Daosheng Mu
585f71980a Bug 1305890 - Part 3: Change OpenVR and Oculus Touch gamepad id; r=kip
MozReview-Commit-ID: Igp2mmlI5sW

--HG--
extra : rebase_source : 3c1992f62088b18ad69a8d267f9e101a74841069
2017-02-10 15:13:44 +08:00
Daosheng Mu
8a2e76ec84 Bug 1305889 - Part 1: Move GamepadHand API to VRControllerHost; r=kip
MozReview-Commit-ID: 5Wi8p0hvgWf

--HG--
extra : rebase_source : 3c01e0876ffe8c84a7dc97f08647dacd0f6de08b
2017-02-06 16:07:20 +08:00
Daosheng Mu
4d84c1a5cc Bug 1299932 - Part 3: Handle OpenVR controller position and orientation; r=kip
MozReview-Commit-ID: FyneJ5JfeNE

--HG--
extra : rebase_source : afd91ee94416285441397e6f51d6031c40fa5513
2016-10-24 18:09:11 +08:00
Daosheng Mu
954b7fbf40 Bug 1315636 - Hanlde OpenVR controller button release; r=gw280
MozReview-Commit-ID: 9ihcXugQn2r

--HG--
extra : rebase_source : 07db2d3d11fe3a42bf5a3f625f2b5f7728017ea1
2016-11-08 08:15:01 +08:00
Daosheng Mu
b0de77c7b1 Bug 1299929 - Part 2: Add extra info for VRController; r=kip
MozReview-Commit-ID: 5y8X5ZPnsHb

--HG--
extra : rebase_source : 1dd7503c2b59af17f287837ba6005207369b6aca
2016-10-13 14:30:26 +08:00
Daosheng Mu
e01d3ca1b4 Bug 1299928 - Part 4: Implement VRControllerManager; r=kip
MozReview-Commit-ID: 3bItvKV2HB

--HG--
extra : rebase_source : 2c41e08774b67c1b369bf20fec4f96597f6214ad
2016-10-07 16:58:01 +08:00
Daosheng Mu
3803722838 Bug 1299928 - Part 2: Rename VRDisplayType to VRDeviceType; r=kip
MozReview-Commit-ID: IZ1eJUtBeRI

--HG--
extra : rebase_source : d6510af05fe972ff5fd8072ca7ea12e276636676
2016-10-04 16:22:42 +08:00
Kearwood (Kip) Gilbert
434f167559 Bug 1250244 - Part 7: Implement WebVR 1.0 API,r=bz
MozReview-Commit-ID: JTOmaWePlJq
2016-02-24 15:54:50 -08:00