From 57202f823e28c0e0a27bf0fbb51da997e407b234 Mon Sep 17 00:00:00 2001 From: sunag Date: Wed, 27 Nov 2024 02:58:39 -0300 Subject: [PATCH] fix viewport/scissor after `copyFramebufferToTexture()` --- src/renderers/webgpu/WebGPUBackend.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/renderers/webgpu/WebGPUBackend.js b/src/renderers/webgpu/WebGPUBackend.js index 17cb0d8711b459..b35cbd7eefd315 100644 --- a/src/renderers/webgpu/WebGPUBackend.js +++ b/src/renderers/webgpu/WebGPUBackend.js @@ -1539,7 +1539,7 @@ class WebGPUBackend extends Backend { encoder.copyTextureToTexture( { texture: sourceGPU, - origin: { x: rectangle.x, y: rectangle.y, z: 0 } + origin: [ rectangle.x, rectangle.y, 0 ], }, { texture: destinationGPU @@ -1568,6 +1568,20 @@ class WebGPUBackend extends Backend { renderContextData.currentPass = encoder.beginRenderPass( descriptor ); renderContextData.currentSets = { attributes: {}, bindingGroups: [], pipeline: null, index: null }; + if ( renderContext.viewport ) { + + this.updateViewport( renderContext ); + + } + + if ( renderContext.scissor ) { + + const { x, y, width, height } = renderContext.scissorValue; + + renderContextData.currentPass.setScissorRect( x, y, width, height ); + + } + } else { this.device.queue.submit( [ encoder.finish() ] );