From f883c9984bc0f6999fb0cfbdf3d5daf3c531d0d7 Mon Sep 17 00:00:00 2001 From: Michael Herzog Date: Thu, 6 Feb 2025 11:21:50 +0100 Subject: [PATCH] WebGPUBackend: Add support for `setStencilReference()`. (#30470) * WebGPUBackend: Add support for `setStencilReference()`. * WebGPUBackend: Cache `stencilRef`. --- src/renderers/webgpu/WebGPUBackend.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/renderers/webgpu/WebGPUBackend.js b/src/renderers/webgpu/WebGPUBackend.js index b41f1524c4d291..da577b3dc02ac4 100644 --- a/src/renderers/webgpu/WebGPUBackend.js +++ b/src/renderers/webgpu/WebGPUBackend.js @@ -1080,7 +1080,7 @@ class WebGPUBackend extends Backend { */ draw( renderObject, info ) { - const { object, context, pipeline } = renderObject; + const { object, material, context, pipeline } = renderObject; const bindings = renderObject.getBindings(); const renderContextData = this.get( context ); const pipelineGPU = this.get( pipeline ).pipeline; @@ -1189,6 +1189,15 @@ class WebGPUBackend extends Backend { } + // stencil + + if ( context.stencil === true && material.stencilWrite === true && renderContextData.currentStencilRef !== material.stencilRef ) { + + passEncoderGPU.setStencilReference( material.stencilRef ); + renderContextData.currentStencilRef = material.stencilRef; + + } + // draw const draw = () => {