From ce9c78be416ec9908fcf4dafb0b92f3cc53f4c1d Mon Sep 17 00:00:00 2001 From: Noeri Huisman <8823461+mrxz@users.noreply.github.com> Date: Thu, 14 Aug 2025 13:30:33 +0200 Subject: [PATCH] Fix multiview for WebXRManager, some changes were lost in a previous rebase --- src/renderers/WebGLRenderer.js | 6 ++++-- src/renderers/webgl/WebGLPrograms.js | 2 +- src/renderers/webgl/WebGLTextures.js | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) 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;