diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index d204f4de94083d..a9f67263ca9094 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -524,7 +524,7 @@ class WebGLRenderer { // xr - const xr = new WebXRManager( _this, _gl ); + const xr = new WebXRManager( _this, _gl, extensions, multiviewStereo ); /** * A reference to the XR manager. @@ -1687,6 +1687,8 @@ class WebGLRenderer { if ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera ); + textures.runDeferredUploads(); + // _gl.finish(); bindingStates.resetDefaultState(); @@ -2711,7 +2713,7 @@ class WebGLRenderer { const renderTargetProperties = properties.get( renderTarget ); renderTargetProperties.__autoAllocateDepthBuffer = renderTarget.resolveDepthBuffer === false; - if ( ! renderTargetProperties.__autoAllocateDepthBuffer === false && ( ! _currentRenderTarget || ! _currentRenderTarget.isWebGLMultiviewRenderTarget ) ) { + if ( ! renderTargetProperties.__autoAllocateDepthBuffer ) { // The multisample_render_to_texture extension doesn't work properly if there // are midframe flushes and an external depth buffer. Disable use of the extension. diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index 94f4c1a0d0eca3..31ecd717d853dc 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -567,7 +567,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities if ( parameters.alphaToCoverage ) _programLayers.enable( 21 ); if ( parameters.numMultiviewViews ) - _programLayers.enable( 21 ); + _programLayers.enable( 22 ); array.push( _programLayers.mask ); diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index 133d0d48efcfe5..1353cb6fd11b70 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -853,6 +853,8 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, } + } + function setDeferTextureUploads( deferFlag ) { _deferTextureUploads = deferFlag;