diff options
| author | skal <pascal.massimino@gmail.com> | 2026-03-21 08:38:29 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-03-21 08:38:29 +0100 |
| commit | a4ff60233fce134e8f779ef001872dfd9a8f9923 (patch) | |
| tree | 3a5466273ecb42269b4d6443c893c61b84ee7d93 /src/effects | |
| parent | 4d055080d2ab4b674d5f0fd611ea051e87454a31 (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')
| -rw-r--r-- | src/effects/shaders.cc | 8 |
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); |
