Commit Graph

16 Commits

Author SHA1 Message Date
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
Nicholas Nethercote
3e439bb4f8 Bug 1376638 - Minimize uses of prmem.h. r=glandium.
It's silly to use prmem.h within Firefox code given that in our configuration
its functions are just wrappers for malloc() et al. (Indeed, in some places we
mix PR_Malloc() with free(), or malloc() with PR_Free().)

This patch removes all uses, except for the places where we need to use
PR_Free() to free something allocated by another NSPR function; in those cases
I've added a comment explaining which function did the allocation.

--HG--
extra : rebase_source : 0f781bca68b5bf3c4c191e09e277dfc8becffa09
2017-06-30 19:05:41 -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
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
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
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
658e2d193c Bug 1332989 - Using VRSystemManager to manage vr displays and controllers; r=kip
MozReview-Commit-ID: 7M1ihvCpU9g

--HG--
extra : rebase_source : aba82b0aa8ab67860418a39dd0eaa21ea18e563e
2017-01-24 17:49:11 +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
Kearwood (Kip) Gilbert
0fa5a8cb30 Bug 1250244 - Part 6: Replace VRStateValidFlags with VRDisplayCapabilityFlags,r=gw280
MozReview-Commit-ID: 2D4isWasWMz
2016-04-18 12:12:33 -07:00
Kearwood (Kip) Gilbert
0fa828c884 Bug 1250244 - Part 5: Rename VRDevice to VRDisplay,r=bz
- In order to reduce the size of the following patches
  and increase their readability, we rename VRDevice
  to VRDisplay here first.

MozReview-Commit-ID: 3pv8scdIi5w
2016-04-12 17:39:28 -07:00
Kearwood (Kip) Gilbert
20e3431c17 Bug 1250244 - Part 4: Remove Cardboard VR Support,r=gw280
- The Cardboard VR support has hardcoded values and uses low-performance
  orientation APIs and rendering paths.
- There is little benefit to this Cardboard VR implementation over using
  polyfills.
- A future implementation would be based on Google VR support in Android N
  and/or Samsung Gear VR Oculus Mobile APIs.

MozReview-Commit-ID: 7e9Th8ZTmj8
2016-05-27 13:49:13 -07:00
Georgiy Frolov
60cd01af74 Bug 1198518: [webvr] add support for OSVR,r=kip
MozReview-Commit-ID: K9nHww0Fe8s
2016-04-26 17:18:21 -04:00