summaryrefslogtreecommitdiff
path: root/src/effects/shaders.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-21 08:38:29 +0100
committerskal <pascal.massimino@gmail.com>2026-03-21 08:38:29 +0100
commita4ff60233fce134e8f779ef001872dfd9a8f9923 (patch)
tree3a5466273ecb42269b4d6443c893c61b84ee7d93 /src/effects/shaders.cc
parent4d055080d2ab4b674d5f0fd611ea051e87454a31 (diff)
feat(cnn_v3): Phase 3 complete — WGSL U-Net inference shaders
5 compute shaders + cnn_v3/common snippet: enc0: Conv(20→4,3×3) + FiLM + ReLU full-res enc1: AvgPool + Conv(4→8,3×3) + FiLM + ReLU half-res bottleneck: AvgPool + Conv(8→8,1×1) + ReLU quarter-res dec1: NearestUp + cat(enc1) + Conv(16→4) + FiLM half-res dec0: NearestUp + cat(enc0) + Conv(8→4) + FiLM + Sigmoid full-res Parity rules: zero-pad conv, AvgPool down, NearestUp, FiLM after conv+bias, skip=concat, OIHW weights+bias layout. Matches PyTorch train_cnn_v3.py forward() exactly. Registered in workspaces/main/assets.txt + src/effects/shaders.cc. Weight layout + Params struct documented in cnn_v3/docs/HOWTO.md §7. Next: Phase 4 — C++ CNNv3Effect + FiLM uniform upload. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/effects/shaders.cc')
-rw-r--r--src/effects/shaders.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/effects/shaders.cc b/src/effects/shaders.cc
index 1adbff5..22c6a6d 100644
--- a/src/effects/shaders.cc
+++ b/src/effects/shaders.cc
@@ -68,6 +68,14 @@ void InitShaderComposer() {
AssetId::ASSET_SHADER_RENDER_RAYMARCHING);
register_if_exists("render/raymarching_id",
AssetId::ASSET_SHADER_RENDER_RAYMARCHING_ID);
+ // CNN v3 inference snippets
+ register_if_exists("cnn_v3/common", AssetId::ASSET_SHADER_CNN_V3_COMMON);
+ register_if_exists("cnn_v3/enc0", AssetId::ASSET_SHADER_CNN_V3_ENC0);
+ register_if_exists("cnn_v3/enc1", AssetId::ASSET_SHADER_CNN_V3_ENC1);
+ register_if_exists("cnn_v3/bottleneck", AssetId::ASSET_SHADER_CNN_V3_BOTTLENECK);
+ register_if_exists("cnn_v3/dec1", AssetId::ASSET_SHADER_CNN_V3_DEC1);
+ register_if_exists("cnn_v3/dec0", AssetId::ASSET_SHADER_CNN_V3_DEC0);
+
// CNN shaders (workspace-specific)
// register_if_exists("cnn_activation", AssetId::ASSET_SHADER_CNN_ACTIVATION);
// register_if_exists("cnn_conv1x1", AssetId::ASSET_SHADER_CNN_CONV1X1);