Commit Graph

87 Commits

Author SHA1 Message Date
Daosheng Mu
5469f66b91 Bug 1621369 - Part 1: Refactor OpenVR controller and adjust its button/axis order for WebXR. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D66677

--HG--
extra : moz-landing-system : lando
2020-03-13 20:56:52 +00:00
Kearwood "Kip" Gilbert
816af12bb5 Bug 1466702 - Refactor / reimplement gfxVRPuppet and VRServiceTest to use gfxVRExternal r=daoshengmu,thomasmo,bzbarsky
gfxVRPuppet will be replaced with a fully asynchronous puppet automation that runs in the VR process.

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

--HG--
extra : moz-landing-system : lando
2019-06-28 21:19:54 +00:00
Daosheng Mu
a2e31cbc26 Bug 1558952 - Vive cosmos controller binding for OpenVR. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D35209

--HG--
rename : gfx/vr/service/binding/OpenVRKnucklesBinding.h => gfx/vr/service/binding/OpenVRCosmosBinding.h
extra : moz-landing-system : lando
2019-06-26 18:26:16 +00:00
Kearwood "Kip" Gilbert
8798e1bf90 Bug 1537550 - Use PlainOldDataSerializer for POD types in VRMessageUtils r=daoshengmu
Moved non-POD member of VRDisplayInfo to VRDisplayHost
VRDisplayInfo is now also a POD type (And asserted so)

Use PlainOldDataSerializer for POD types in VRMessageUtils
Moved non-POD member of VRDisplayInfo to VRDisplayHost
VRDisplayInfo is now also a POD type (And asserted so)

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

--HG--
extra : moz-landing-system : lando
2019-03-25 18:06:32 +00:00
thomasmo
b16b2cbba6 Bug 1474034 - Use consistent prefixes for POD struct members in gfx/vr/external_api/moz_external_vr.h r=kip
This change updates the structs VRDisplayState, VRLayer_2D_Content, and VRLayer_Stereo_Immersive to not have 'm' prefix for its members.

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

--HG--
extra : moz-landing-system : lando
2019-01-09 21:57:36 +00:00
Daosheng Mu
2406b85da6 Bug 1430040 - Part 4: Make the parent process keep the OpenVR controller manifest info when VR process is enabled. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D15419

--HG--
extra : moz-landing-system : lando
2018-12-28 22:09: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
Kearwood Gilbert
d0b35a2ff4 Bug 1470527 - Implement Controller support for gfxVRExternal and VRServiceOpenVR,r=daoshengmu
MozReview-Commit-ID: I1xHfmAPMxT

--HG--
extra : rebase_source : 5d957ff6172f3e730b61878b9067ec506ea4a383
extra : source : 66c97a5d22efc6436aab76756759b9b51517e940
2018-07-11 12:20:51 -07:00
Ciure Andrei
4a390e2fc4 Backed out 1 changesets (bug 1470527) for build bustages on OpenVRSession.cpp CLOSED TREE
Backed out changeset 66c97a5d22ef (bug 1470527)
2018-07-11 23:23:42 +03:00
Kearwood Gilbert
0ee53b44e4 Bug 1470527 - Implement Controller support for gfxVRExternal and VRServiceOpenVR
--HG--
extra : amend_source : d639de8cb929b209bbde0f44b47acadd23a9e257
2018-07-11 12:20:51 -07:00
Andi-Bogdan Postelnicu
de9afa6930 Bug 1453795 - WebVR - Initialize member fields in classes/ structures. r=kip
--HG--
extra : rebase_source : e74859026aa9f35df953c98812591500f54efb75
extra : amend_source : c2fad0ffaa313aadbc1e8b7e01654bd28feea971
2018-06-15 18:16:15 +03: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
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02: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
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
4b8304ef73 Bug 1358247 - Reply VR vibrate promises to the individual channels; r=kip
MozReview-Commit-ID: 4NwYNkwKUMR

--HG--
extra : rebase_source : 9e9d8ddcb0f91a3745e6ed5e614bb696b6d950af
2017-11-30 19:37:07 +08:00
Daosheng Mu
395b4fcfac Bug 1418879 - Refine dom/vr and gfx/vr to fit with static-analysis; r=kip
MozReview-Commit-ID: K1r5NgQuuPK

--HG--
extra : rebase_source : 23a7d8d1ed9d1f6caa6a160afd969d21a69b5d6e
2017-11-20 12:00:31 +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
Andi-Bogdan Postelnicu
07c02b3927 Bug 1411630 - make mozilla::gfx::VRHMDSensorState to be trivial typed. r=kip
MozReview-Commit-ID: 7BniyasLIQD

--HG--
extra : rebase_source : 9f96da05deab0718b19170814a67a2b22c58656e
2017-10-30 14:51:32 +02:00
Kearwood "Kip" Gilbert
ccc6462307 Bug 1410493 - Update Oculus SDK from 1.5 to 1.9, update IPD during VR presentation r=daoshengmu
- Oculus SDK was updated from 1.5 to 1.9
- As the Oculus API now returns quaternion orientations for each
  eye-to-head transform, I needed to send more information to the
  content process.
- Rather than adding the quaternion, we now calculate the view matrices
  on the VR thread in the GPU process rather than calculating it in the
  content thread from parameters.
- OpenVR's full view matrix is now used, for compatibility with more devices.
- IPD adjustments are now updated every frame for both Oculus and OpenVR.


MozReview-Commit-ID: LOtfs4QIqc8

--HG--
extra : rebase_source : 0a69824012ede4bea0e0e709a2d027d0c35730bb
2017-10-23 14:23:03 -07: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
Coroiu Cristina
12e0c4a11e Backed out changeset b8743cbd9049 (bug 1411630) for failing on OS X and Windows 10 reftests in dom/vr/test/reftest/change_size.html r=backout a=backout on a CLOSED TREE
Backed out changeset b8743cbd9049 (bug 1411630)
2017-10-30 14:29:41 +02:00
Andi-Bogdan Postelnicu
bd50b9031f Bug 1411630 - make mozilla::gfx::VRHMDSensorState to be trivial typed. r=kip
MozReview-Commit-ID: 7BniyasLIQD

--HG--
extra : rebase_source : ad7603dd8e2f8ea93989833de09624108aa7bd31
2017-10-30 10:43:14 +02:00
Kearwood "Kip" Gilbert
c0e22d6c35 Bug 1400387 - Change 32-bit VR Frame ID's to 64-bit r=daoshengmu
MozReview-Commit-ID: BSvZMa0XVSO

--HG--
extra : rebase_source : 47c1a2cc9ff756cc1dd9174a12a434c4fbfc4a09
2017-09-15 13:38:47 -07:00
Daosheng Mu
b95528913e Bug 1392476 - Add dropframe telemetry for WebVR; r=francois,kip
MozReview-Commit-ID: IPVnPBkY8CN

--HG--
extra : rebase_source : 437b3528cecb05bc0bb4307447dee3e18c63d762
2017-08-28 18:43:25 +08: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
0a5d006f8a Bug 1287944 - Improve interaction with Oculus Home r=daoshengmu
- Now destroying and re-creating Oculus sessions when switching
  between magic window and immersive WebVR (BeginPresent / ExitPresent)
- Now sending flags to Oculus ovr_initilize to specify if Firefox will
  be presenting to the VR display or just using tracking
- Now coordinating oculus session shutdown and restart between the
  VR controllers and the VR display with reference counting.
- Now able to return to Oculus home after using WebVR
- Magic window / non-exclusive sessions no longer take over the VR headset
  causing it to display a message that Firefox.exe is not responding.


MozReview-Commit-ID: EnRsxt6ZSzg

--HG--
extra : rebase_source : 10ba1b76bf75774b8842d99b555319fb5dd7f736
2017-07-04 13:28:27 -07:00
Wes Kocher
c119435f8a Backed out changeset f9b033c61423 (bug 1287944) for win debug failures in test_child_assertions.js a=backout
MozReview-Commit-ID: Fem34WwTkY6
2017-07-06 17:03:39 -07:00
Kearwood "Kip" Gilbert
d4f04befed Bug 1287944 - Improve interaction with Oculus Home r=daoshengmu
- Now destroying and re-creating Oculus sessions when switching
  between magic window and immersive WebVR (BeginPresent / ExitPresent)
- Now sending flags to Oculus ovr_initilize to specify if Firefox will
  be presenting to the VR display or just using tracking
- Now coordinating oculus session shutdown and restart between the
  VR controllers and the VR display with reference counting.
- Now able to return to Oculus home after using WebVR
- Magic window / non-exclusive sessions no longer take over the VR headset
  causing it to display a message that Firefox.exe is not responding.


MozReview-Commit-ID: EnRsxt6ZSzg

--HG--
extra : rebase_source : d1ecf52e064ffe88c2cdebb011b8ffa9beb7b46e
2017-07-04 13:28:27 -07: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
a839377259 Bug 1343730 - Part 1: Support submitFrame and encode the frame as a base64 image in VRPuppet; r=kip
MozReview-Commit-ID: jHKHSoNo6X

--HG--
extra : rebase_source : df5050a488e19af81ebd240c5fb5fdfd30b46907
2017-05-23 16:55:30 +08:00
Daosheng Mu
5ec9ae756d Bug 1356452 - Part 5: Detect hand changing at runtime for OpenVR controllers; r=kip
MozReview-Commit-ID: AR5zpxryIw6

--HG--
extra : rebase_source : c99f87a1c82b59c106bbb7e1c1c29d2478e2d353
2017-04-18 15:58:34 +08:00
Kearwood Gilbert
c944eed13a Bug 1356387 - Add constructor to VRHMDSensorState
- Also removed some now redundant calls to VRHMDSensorState::Clear()


MozReview-Commit-ID: Kkbvkn3XAP4

--HG--
extra : rebase_source : 0daecf8ad2f4baa8f3d199c65dc7c0cbeb4aceae
2017-04-17 12:15:38 -07:00
Kearwood Gilbert
043d85c921 Bug 1351048 - Do not load VR libraries until necessary, Oculus cleanup r=daoshengmu
- I have refactored the Oculus and OpenVR interfaces in gfx/vr
  so that initialization of the VR libraries only happens once
  a WebVR site is detected.
- The Oculus interface has been cleaned up and updated to unload the Oculus
  runtime library when not in use.
- The browser can now re-connect to Oculus home if it was restarted, without
  restarting the browser.
- We no longer submit a black frame at the end of VR presentation, as this
  appears to be handled by the latest Oculus runtime automatically.
- As we only hold on to the Oculus runtime when needed, this should
  reduce the likelihood of the GPU process being killed by the Oculus
  software updater.

MozReview-Commit-ID: AyWeD4CxXLD

--HG--
extra : rebase_source : 9eae07ef30b1a7559b5fe80e6698c248a55b970e
2017-03-30 09:35:49 -04: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
a5e10d768b Bug 1349414 - Allow updating VR controllers at the non-presenting mode; r=kip
MozReview-Commit-ID: CA6YxLxySDi

--HG--
extra : rebase_source : 058b8aebdf8d13e22d2c25bdf037094ca1e52f4b
2017-03-22 09:58:06 +08:00
Daosheng Mu
ce4a76e405 Bug 1346149 - Part 1: Make button support value in VRSystemManager; r=kip
MozReview-Commit-ID: 72rqJZtIaDa

--HG--
extra : rebase_source : 393ad8033f656d8bd26dcf000764c51bc70f8c4f
2017-03-16 15:49:46 +08:00
Daosheng Mu
83f1b993be Bug 1229480: Implement Puppet VR Device; r=kip
MozReview-Commit-ID: hslhADrGs5

--HG--
extra : rebase_source : 8a0ead8f99f71fe36da428a4d4ead91d3ea02624
2017-03-02 00:04:12 +08:00
Daosheng Mu
3e9c86df65 Bug 1305889 - Part 2: Using VRControllerInfo as the parameter for AddGamepad; r=kip
MozReview-Commit-ID: Coye62hZxRs

--HG--
extra : rebase_source : d4166395794a55c565f37b803099682c9e075d8b
2017-02-06 16:12:52 +08:00