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;