From 7a8227bc8b67f935685991f43666ee938ce39393 Mon Sep 17 00:00:00 2001 From: skal Date: Sun, 22 Mar 2026 20:21:50 +0100 Subject: fix(cnn_v3): resolve #include via ShaderComposer in GBufDeferredEffect Raw WGSL was sent to WebGPU without resolving the math/normal include. Also removed unused feat_tex1 binding (shadow dropped for now). --- cnn_v3/shaders/gbuf_deferred.wgsl | 1 - cnn_v3/src/gbuf_deferred_effect.cc | 22 ++++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/cnn_v3/shaders/gbuf_deferred.wgsl b/cnn_v3/shaders/gbuf_deferred.wgsl index fffe5b9..dda4b27 100644 --- a/cnn_v3/shaders/gbuf_deferred.wgsl +++ b/cnn_v3/shaders/gbuf_deferred.wgsl @@ -5,7 +5,6 @@ #include "math/normal" @group(0) @binding(0) var feat_tex0: texture_2d; -@group(0) @binding(1) var feat_tex1: texture_2d; @group(0) @binding(2) var uniforms: GBufDeferredUniforms; struct GBufDeferredUniforms { diff --git a/cnn_v3/src/gbuf_deferred_effect.cc b/cnn_v3/src/gbuf_deferred_effect.cc index 8967fe5..1adae5e 100644 --- a/cnn_v3/src/gbuf_deferred_effect.cc +++ b/cnn_v3/src/gbuf_deferred_effect.cc @@ -2,6 +2,7 @@ #include "gbuf_deferred_effect.h" #include "gpu/gpu.h" +#include "gpu/shader_composer.h" #include "util/fatal_error.h" extern const char* gbuf_deferred_wgsl; @@ -36,13 +37,12 @@ GBufDeferredEffect::GBufDeferredEffect(const GpuContext& ctx, : Effect(ctx, inputs, outputs, start_time, end_time) { HEADLESS_RETURN_IF_NULL(ctx_.device); - WGPUBindGroupLayoutEntry entries[3] = { + WGPUBindGroupLayoutEntry entries[2] = { bgl_uint_tex(0), - bgl_uint_tex(1), bgl_uniform(2, sizeof(GBufDeferredUniforms)), }; WGPUBindGroupLayoutDescriptor bgl_desc = {}; - bgl_desc.entryCount = 3; + bgl_desc.entryCount = 2; bgl_desc.entries = entries; WGPUBindGroupLayout bgl = wgpuDeviceCreateBindGroupLayout(ctx_.device, &bgl_desc); @@ -53,7 +53,8 @@ GBufDeferredEffect::GBufDeferredEffect(const GpuContext& ctx, WGPUShaderSourceWGSL wgsl_src = {}; wgsl_src.chain.sType = WGPUSType_ShaderSourceWGSL; - wgsl_src.code = str_view(gbuf_deferred_wgsl); + const std::string composed = ShaderComposer::Get().Compose({}, gbuf_deferred_wgsl); + wgsl_src.code = str_view(composed.c_str()); WGPUShaderModuleDescriptor shader_desc = {}; shader_desc.nextInChain = &wgsl_src.chain; WGPUShaderModule shader = wgpuDeviceCreateShaderModule(ctx_.device, &shader_desc); @@ -88,7 +89,6 @@ void GBufDeferredEffect::render(WGPUCommandEncoder encoder, const UniformsSequenceParams& params, NodeRegistry& nodes) { WGPUTextureView feat0_view = nodes.get_view(input_nodes_[0]); - WGPUTextureView feat1_view = nodes.get_view(input_nodes_[1]); WGPUTextureView output_view = nodes.get_view(output_nodes_[0]); // Upload resolution uniform into the base class uniforms buffer (first 8 bytes). @@ -101,18 +101,16 @@ void GBufDeferredEffect::render(WGPUCommandEncoder encoder, WGPUBindGroupLayout bgl = wgpuRenderPipelineGetBindGroupLayout(pipeline_.get(), 0); - WGPUBindGroupEntry bg_entries[3] = {}; + WGPUBindGroupEntry bg_entries[2] = {}; bg_entries[0].binding = 0; bg_entries[0].textureView = feat0_view; - bg_entries[1].binding = 1; - bg_entries[1].textureView = feat1_view; - bg_entries[2].binding = 2; - bg_entries[2].buffer = uniforms_buffer_.get().buffer; - bg_entries[2].size = sizeof(GBufDeferredUniforms); + bg_entries[1].binding = 2; + bg_entries[1].buffer = uniforms_buffer_.get().buffer; + bg_entries[1].size = sizeof(GBufDeferredUniforms); WGPUBindGroupDescriptor bg_desc = {}; bg_desc.layout = bgl; - bg_desc.entryCount = 3; + bg_desc.entryCount = 2; bg_desc.entries = bg_entries; bind_group_.replace(wgpuDeviceCreateBindGroup(ctx_.device, &bg_desc)); wgpuBindGroupLayoutRelease(bgl); -- cgit v1.2.3