Closed Bug 1466702 Opened 6 years ago Closed 5 years ago

Refactor gfxVRPuppet.cpp to use gfxVRExternal interface

Categories

(Core :: WebVR, enhancement)

59 Branch
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox69 --- fixed

People

(Reporter: kip, Assigned: kip)

References

(Blocks 5 open bugs)

Details

Attachments

(1 file)

As part of an iterative implementation to move the VR api interfaces to their own process, we will first update the backend's in gfx/vr/... to communicate entirely with the rest of Gecko through the VRExternalShmem struct, defined in gfx/vr/external_api/moz_external_vr.h

This implementation will follow the conversion of gfxVROpenVR.cpp in Bug 1466699, which will lay much of the foundation needed.

The control of the puppet devices themselves will continue to use the existing IPC/messages on the Compositor thread until later refactoring to use a puppet testing specific interface from the VR process.
Blocks: 1362578
Blocks: 1473399
No longer blocks: 1473399
Blocks: 1473401
Assignee: nobody → kgilbert
The dom/vr/tests/mochitest tests have been disabled in Bug 1473397 due to the test code replaced by VRServicePuppet in this patch needing to be updated to support asynchronous display and controller instantiation.

The dom/vr/tests/cmohitest tests will be re-enabled with this patch.

It might also be good to also move the runtime call from SpecialPowers.pushPrefEnv (in runVRTest.js) to config declarations in mochitest.ini when these are re-enabled.

No longer blocks: 1362578

gfxVRPuppet will be replaced with a fully asynchronous puppet automation that runs in the VR process.

Blocks: 1534553
Blocks: 1534436
Blocks: 1527920
Blocks: 1520387
Blocks: 1495646
Blocks: 1494513
Blocks: 1476673
Blocks: 1462436
Blocks: 1537957
Blocks: 1555180
Blocks: 1555182
Blocks: 1555185
Blocks: 1555188
Blocks: 1555192
Blocks: 1551117

Fixed some static analysis warnings and errors found on try. Updated push:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=b03a1ffc0f82de199a315358927a2d0bcfeb39e5

Fixed more static analysis warnings, addressed review feedback, fixed memory leak.

Updated push:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=e3ec7fdc5688ac41b7666ffbc9fbf3fd7353eee6

There is likely still compile errors on Android, will fix now.

I have completed making all the changes suggested in review feedback and static analysis.

Pushed to try again to weed out any platform-specific failures:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=58886fdef32b2b725856b293e0217dcd31d3a3b1

Updated try push, rebased and attempting to fix Android and Linux build errors:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=bda696bb9a4ad9df26daa6fbc054f25e7c52cd93

Try looks good, except for Win 7 WPT. Investigating...

It appears that Win 7 try is failing due to having the VR process enabled but not the GPU process. Updating patch to ensure that the logic is consistent everywhere, testing for both the GPU process and VR process enable prefs.

Updated patch and try push, to correct shutdown crash introduced in last patch:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=3cf63c6f121d2960d211737b7066799a25df7988

New patch and try push, to correct implicit VRServiceHost constructor warning:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=84ce3a07b02aac046ac77b3b593d6613f08b262e

VRServiceHost was shutting down too early, causing VRManager's DTOR to crash. Updated patch and try push:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=1b42b0fdfdb6dc10a5acac7ab8d8de4991536711

Rebase, backport pref changes, fix try build errors.

Try push for new patch:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=856594056f9038cb5decb625feceb978c07dcd9c

This build is looking good. I have also done some sanity checks on device locally with the OpenVR backend.

Changed unsigned long arguments to uint32_t based on review feedback from BZ, rebased. Try push:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=18e2524f288f7db63fdd76946b4219c49846681c

Pushed by kgilbert@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/133ac0d11428
Refactor / reimplement gfxVRPuppet and VRServiceTest to use gfxVRExternal r=daoshengmu,thomasmo,bzbarsky
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Regressions: 1562453
Regressions: 1562497
Regressions: 1564203
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: