From a4ff60233fce134e8f779ef001872dfd9a8f9923 Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 21 Mar 2026 08:38:29 +0100 Subject: feat(cnn_v3): Phase 3 complete — WGSL U-Net inference shaders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/effects/shaders.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') 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); -- cgit v1.2.3