Skip to content

Commit 77af389

Browse files
authored
Fixed XR Layer rendering race condition with session initialization and RenderState Update (#5489)
* Fixed XR Layer rendering race condition with session initialization and RenderState update. * Execute enterVRSuccess after xrSession is fully initialized.
1 parent a9a160b commit 77af389

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

src/components/layer.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,6 @@ module.exports.Component = registerComponent('layer', {
367367
return;
368368
}
369369
xrSession.requestReferenceSpace('local-floor').then(this.onRequestedReferenceSpace);
370-
this.needsRedraw = true;
371370
this.layerEnabled = true;
372371
if (this.quadPanelEl) {
373372
this.quadPanelEl.object3D.visible = false;

src/core/scene/a-scene.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -299,19 +299,18 @@ class AScene extends AEntity {
299299
self.usedOfferSession |= useOfferSession;
300300
requestSession(xrMode, xrInit).then(
301301
function requestSuccess (xrSession) {
302-
self.xrSession = xrSession;
303-
304302
if (useOfferSession) {
305303
self.usedOfferSession = false;
306304
}
307305

308306
vrManager.layersEnabled = xrInit.requiredFeatures.indexOf('layers') !== -1;
309307
vrManager.setSession(xrSession).then(function () {
310308
vrManager.setFoveation(rendererSystem.foveationLevel);
309+
self.xrSession = xrSession;
310+
self.systems.renderer.setWebXRFrameRate(xrSession);
311+
xrSession.addEventListener('end', self.exitVRBound);
312+
enterVRSuccess(resolve);
311313
});
312-
self.systems.renderer.setWebXRFrameRate(xrSession);
313-
xrSession.addEventListener('end', self.exitVRBound);
314-
enterVRSuccess(resolve);
315314
},
316315
function requestFail (error) {
317316
var useAR = xrMode === 'immersive-ar';

0 commit comments

Comments
 (0)