diff --git a/examples/webgpu_tsl_editor.html b/examples/webgpu_tsl_editor.html index d22f4cd91a6087..ba820dcaaaea3c 100644 --- a/examples/webgpu_tsl_editor.html +++ b/examples/webgpu_tsl_editor.html @@ -184,6 +184,8 @@ compiling = true; + mesh.visible = false; + if ( options.output === 'WGSL' ) { rawShader = await renderer.debug.getShaderAsync( scene, camera, mesh ); @@ -195,6 +197,8 @@ } + mesh.visible = true; + compiling = false; showCode(); diff --git a/src/renderers/common/Renderer.js b/src/renderers/common/Renderer.js index bb2b20930fafe7..a03b1bb93ed7e6 100644 --- a/src/renderers/common/Renderer.js +++ b/src/renderers/common/Renderer.js @@ -737,10 +737,13 @@ class Renderer { onShaderError: null, getShaderAsync: async ( scene, camera, object ) => { - await this.compileAsync( scene, camera ); + await this.compileAsync( object, camera, scene ); + + const useFrameBufferTarget = this.needsFrameBufferTarget && this._renderTarget === null; + const renderTarget = useFrameBufferTarget ? this._getFrameBufferTarget() : ( this._renderTarget || this._outputRenderTarget ); const renderList = this._renderLists.get( scene, camera ); - const renderContext = this._renderContexts.get( this._renderTarget, this._mrt ); + const renderContext = this._renderContexts.get( renderTarget, this._mrt ); const material = scene.overrideMaterial || object.material;