summaryrefslogtreecommitdiff
path: root/cnn_v3/src
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-22 20:21:50 +0100
committerskal <pascal.massimino@gmail.com>2026-03-22 20:21:50 +0100
commit7a8227bc8b67f935685991f43666ee938ce39393 (patch)
tree2f3ac39f959ef619fea6c4a8fc91fbdc493de65c /cnn_v3/src
parentf99109e315f704c64d1deb4d5a0c5424d20924d2 (diff)
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).
Diffstat (limited to 'cnn_v3/src')
-rw-r--r--cnn_v3/src/gbuf_deferred_effect.cc22
1 files changed, 10 insertions, 12 deletions
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);