summaryrefslogtreecommitdiff
path: root/workspaces/main/shaders/cnn/cnn_layer.wgsl
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-10 10:27:44 +0100
committerskal <pascal.massimino@gmail.com>2026-02-10 10:27:44 +0100
commit96a349b9874c6cdaac525ba062a0f4f90c9bc3ed (patch)
treea4eb24fdb417393cbe5a0dc84bf5063cffc94daf /workspaces/main/shaders/cnn/cnn_layer.wgsl
parent75af266889b61b5722d842a1a1eb23f79bc06a85 (diff)
feat: Add coordinate-aware CNN layer 0 for position-dependent stylization
- Implement CoordConv2d custom layer accepting (x,y) patch center - Split layer 0 weights: rgba_weights (9x mat4x4) + coord_weights (mat2x4) - Add *_with_coord() functions to 3x3/5x5/7x7 convolution shaders - Update training script to generate coordinate grid and export split weights - Regenerate placeholder weights with new format Size impact: +32B coord weights + ~100B shader code = +132B total All 36 tests passing (100%) handoff(Claude): CNN coordinate awareness implemented, ready for training Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'workspaces/main/shaders/cnn/cnn_layer.wgsl')
-rw-r--r--workspaces/main/shaders/cnn/cnn_layer.wgsl6
1 files changed, 3 insertions, 3 deletions
diff --git a/workspaces/main/shaders/cnn/cnn_layer.wgsl b/workspaces/main/shaders/cnn/cnn_layer.wgsl
index e026ce8..b2bab26 100644
--- a/workspaces/main/shaders/cnn/cnn_layer.wgsl
+++ b/workspaces/main/shaders/cnn/cnn_layer.wgsl
@@ -29,10 +29,10 @@ struct CNNLayerParams {
let uv = p.xy / uniforms.resolution;
var result = vec4<f32>(0.0);
- // Single layer for now (layer 0)
+ // Layer 0 uses coordinate-aware convolution
if (params.layer_index == 0) {
- result = cnn_conv3x3(txt, smplr, uv, uniforms.resolution,
- weights_layer0, bias_layer0);
+ result = cnn_conv3x3_with_coord(txt, smplr, uv, uniforms.resolution,
+ rgba_weights_layer0, coord_weights_layer0, bias_layer0);
result = cnn_tanh(result);
}