summaryrefslogtreecommitdiff
path: root/src/gpu/sequence.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-26 07:03:01 +0100
committerskal <pascal.massimino@gmail.com>2026-03-26 07:03:01 +0100
commit8f14bdd66cb002b2f89265b2a578ad93249089c9 (patch)
tree2ccdb3939b673ebc3a5df429160631240239cee2 /src/gpu/sequence.cc
parent4ca498277b033ae10134045dae9c8c249a8d2b2b (diff)
feat(cnn_v3): upgrade architecture to enc_channels=[8,16]
Double encoder capacity: enc0 4→8ch, enc1 8→16ch, bottleneck 16→16ch, dec1 32→8ch, dec0 16→4ch. Total weights 2476→7828 f16 (~15.3 KB). FiLM MLP output 40→72 params (L1: 16×40→16×72). 16-ch textures split into _lo/_hi rgba32uint pairs (enc1, bottleneck). enc0 and dec1 textures changed from rgba16float to rgba32uint (8ch). GBUF_RGBA32UINT node gains CopySrc for parity test readback. - WGSL shaders: all 5 passes rewritten for new channel counts - C++ CNNv3Effect: new weight offsets/sizes, 8ch uniform structs - Web tool (shaders.js + tester.js): matching texture formats and bindings - Parity test: readback_rgba32uint_8ch helper, updated vector counts - Training scripts: default enc_channels=[8,16], updated docstrings - Docs + architecture PNG regenerated handoff(Gemini): CNN v3 [8,16] upgrade complete. All code, tests, web tool, training scripts, and docs updated. Next: run training pass.
Diffstat (limited to 'src/gpu/sequence.cc')
-rw-r--r--src/gpu/sequence.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpu/sequence.cc b/src/gpu/sequence.cc
index 6bff34e..c81a912 100644
--- a/src/gpu/sequence.cc
+++ b/src/gpu/sequence.cc
@@ -203,7 +203,8 @@ void NodeRegistry::create_texture(Node& node) {
case NodeType::GBUF_RGBA32UINT:
format = WGPUTextureFormat_RGBA32Uint;
usage = (WGPUTextureUsage)(WGPUTextureUsage_StorageBinding |
- WGPUTextureUsage_TextureBinding);
+ WGPUTextureUsage_TextureBinding |
+ WGPUTextureUsage_CopySrc);
break;
}