Auto merge of #25144 - Manishearth:inline, r=asajeffrey

Support inline sessions (with spatial tracking!)

This assumes that your WebXR backend can tolerate being spawned multiple times in inline mode. Currently there is only one backend that allows inline mode (headless), and it works there. This can be improved with https://github.com/servo/webxr/issues/30 .

Todo:

 - [ ] Add a default inline device to webxr so that there is always a tracking-free inline session available (followup: https://github.com/servo/webxr/issues/101)
 - [x] WPT update
 - [ ] Make inline with spatial tracking a feature request (followup: https://github.com/servo/servo/issues/24270)

fixes https://github.com/servo/servo/issues/24186

Depends on https://github.com/servo/webxr/pull/100
This commit is contained in:
bors-servo 2019-12-11 21:04:47 -05:00 committed by GitHub
commit 073194a618
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 210 additions and 146 deletions

View file

@ -727667,7 +727667,7 @@
"testharness"
],
"webxr/xrView_oneframeupdate.https.html": [
"8edb2c0b265f18479644f312f91478d6029e3cd5",
"438d3dbaa36a14d6850adf83e3279e23c00157a4",
"testharness"
],
"webxr/xrView_sameObject.https.html": [

View file

@ -107,9 +107,6 @@
[XRReferenceSpace interface: attribute onreset]
expected: FAIL
[XRRenderState interface: attribute inlineVerticalFieldOfView]
expected: FAIL
[XRRay interface: attribute origin]
expected: FAIL
@ -169,3 +166,4 @@
[WebGLRenderingContext includes WebGLRenderingContextBase: member names are unique]
expected: FAIL

View file

@ -1,7 +0,0 @@
[xrDevice_requestSession_immersive.https.html]
[Tests requestSession ignores unknown optionalFeatures]
expected: FAIL
[Tests requestSession accepts XRSessionInit dictionary]
expected: FAIL

View file

@ -2,12 +2,3 @@
[Tests requestSession ignores unknown optionalFeatures]
expected: FAIL
[Tests requestSession accepts XRSessionInit dictionary with empty feature lists]
expected: FAIL
[Tests requestSession ignores unknown objects in optionalFeatures]
expected: FAIL
[Tests requestSession ignores unknown strings in optionalFeatures]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrFrame_getPose.https.html]
[XRFrame.getPose works for non-immersive sessions]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrFrame_lifetime.https.html]
[XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrSession_end.https.html]
[end event fires when non-immersive session ends]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrSession_requestAnimationFrame_callback_calls.https.html]
[XRSession requestAnimationFrame calls the provided callback a non-immersive session]
expected: FAIL

View file

@ -1,7 +1,8 @@
[xrSession_requestAnimationFrame_timestamp.https.html]
expected: TIMEOUT
[XRFrame getViewerPose updates on the next frame for immersive]
expected: FAIL
[XRFrame getViewerPose updates on the next frame for non-immersive]
expected: FAIL
expected: TIMEOUT

View file

@ -1,34 +1,7 @@
[xrSession_requestReferenceSpace_features.https.html]
[Non-immersive session rejects unbounded space even when requested]
expected: FAIL
[Immersive session supports local space by default]
expected: FAIL
[Non-immersive session supports local-floor space when required]
expected: FAIL
[Immersive session rejects local-floor space if not requested]
expected: FAIL
[Immersive session supports local-floor space when required]
expected: FAIL
[Non-immersive session rejects bounded-floor space even when requested]
expected: FAIL
[Non-immersive session supports local space when optional]
expected: FAIL
[Immersive session supports local-floor space when optional]
expected: FAIL
[Non-immersive session supports local space when required]
expected: FAIL
[Non-immersive session rejects local space if not requested]
expected: FAIL
[Immersive session supports viewer space by default]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrSession_viewer_referenceSpace.https.html]
[Identity reference space provides correct poses for immersive sessions]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrView_eyes.https.html]
[XRView.eye is correct for non-immersive sessions]
expected: FAIL

View file

@ -1,5 +1,4 @@
[xrView_oneframeupdate.https.html]
expected: ERROR
[XRView projection matrices update near and far depths on the next frame]
expected: TIMEOUT
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrWebGLLayer_opaque_framebuffer.https.html]
[Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive]
expected: FAIL

View file

@ -76,7 +76,7 @@ let testFunction = function(session, fakeDeviceController, t) {
counter++;
}
session.requestAnimationFrame(onFrame);
session.requestAnimationFrame(t.step_func(onFrame));
}));
};