From b8bb8318f03663e9301866bf5cb60571093ffe43 Mon Sep 17 00:00:00 2001 From: Sam Wedgwood Date: Tue, 5 Aug 2025 14:52:07 +0100 Subject: [PATCH 1/2] partial fix --- .../graphics/webgpu/webgpu-shader-processor-wgsl.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js b/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js index 955a68a05c4..b82685cf9fd 100644 --- a/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js +++ b/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js @@ -676,26 +676,23 @@ class WebgpuShaderProcessorWGSL { */ static getTextureShaderDeclaration(format, bindGroup, startBindIndex) { let code = ''; - let bindIndex = startBindIndex; format.textureFormats.forEach((format) => { const textureTypeName = getTextureDeclarationType(format.textureDimension, format.sampleType); - code += `@group(${bindGroup}) @binding(${bindIndex}) var ${format.name}: ${textureTypeName};\n`; - bindIndex++; + code += `@group(${bindGroup}) @binding(${format.slot}) var ${format.name}: ${textureTypeName};\n`; if (format.hasSampler) { + // A slot should have been left empty for the sampler at format.slot+1 const samplerName = format.sampleType === SAMPLETYPE_DEPTH ? 'sampler_comparison' : 'sampler'; - code += `@group(${bindGroup}) @binding(${bindIndex}) var ${format.samplerName}: ${samplerName};\n`; - bindIndex++; + code += `@group(${bindGroup}) @binding(${format.slot+1}) var ${format.samplerName}: ${samplerName};\n`; } }); format.storageBufferFormats.forEach((format) => { const access = format.readOnly ? 'read' : 'read_write'; - code += `@group(${bindGroup}) @binding(${bindIndex}) var ${format.name} : ${format.format};\n`; - bindIndex++; + code += `@group(${bindGroup}) @binding(${format.slot}) var ${format.name} : ${format.format};\n`; }); From 4078ec6cbe8098c65fe16ab9407570c0e4ce8af1 Mon Sep 17 00:00:00 2001 From: Martin Valigursky <59932779+mvaligursky@users.noreply.github.com> Date: Fri, 17 Oct 2025 11:29:19 +0100 Subject: [PATCH 2/2] Apply suggestion from @mvaligursky --- src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js b/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js index b82685cf9fd..0096953a3bc 100644 --- a/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js +++ b/src/platform/graphics/webgpu/webgpu-shader-processor-wgsl.js @@ -685,7 +685,7 @@ class WebgpuShaderProcessorWGSL { if (format.hasSampler) { // A slot should have been left empty for the sampler at format.slot+1 const samplerName = format.sampleType === SAMPLETYPE_DEPTH ? 'sampler_comparison' : 'sampler'; - code += `@group(${bindGroup}) @binding(${format.slot+1}) var ${format.samplerName}: ${samplerName};\n`; + code += `@group(${bindGroup}) @binding(${format.slot + 1}) var ${format.samplerName}: ${samplerName};\n`; } });