diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-13 23:17:42 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-13 23:17:42 +0100 |
| commit | 6fa9ccf86b0bbefb48cefae19d4162115a3d63d3 (patch) | |
| tree | 529f68a33d9e4dcc8e473ed604c0bfb6f6f2704f /src/gpu | |
| parent | f81a30d15e1e7db0492f45a0b9bec6aaa20ae5c2 (diff) | |
CNN v2: Alpha channel depth handling and layer visualization
Training changes:
- Changed p3 default depth from 0.0 to 1.0 (far plane semantics)
- Extract depth from target alpha channel in both datasets
- Consistent alpha-as-depth across training/validation
Test tool enhancements (cnn_test):
- Added load_depth_from_alpha() for R32Float depth texture
- Fixed bind group layout for UnfilterableFloat sampling
- Added --save-intermediates with per-channel grayscale composites
- Each layer saved as 4x wide PNG (p0-p3 stacked horizontally)
- Global layers_composite.png for vertical layer stack overview
Investigation notes:
- Static features p4-p7 ARE computed and bound correctly
- Sin_20_y pattern visibility difference between tools under investigation
- Binary weights timestamp (Feb 13 20:36) vs HTML tool (Feb 13 22:12)
- Next: Update HTML tool with canonical binary weights
handoff(Claude): HTML tool weights update pending - base64 encoded
canonical weights ready in /tmp/weights_b64.txt for line 392 replacement.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/gpu')
| -rw-r--r-- | src/gpu/effects/cnn_v2_effect.cc | 1 | ||||
| -rw-r--r-- | src/gpu/effects/cnn_v2_effect.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/gpu/effects/cnn_v2_effect.cc b/src/gpu/effects/cnn_v2_effect.cc index 5e38f13..3985723 100644 --- a/src/gpu/effects/cnn_v2_effect.cc +++ b/src/gpu/effects/cnn_v2_effect.cc @@ -530,6 +530,7 @@ void CNNv2Effect::compute(WGPUCommandEncoder encoder, params.weight_offset = info.weight_offset; params.is_output_layer = (i == layer_info_.size() - 1) ? 1 : 0; params.blend_amount = effective_blend; + params.is_layer_0 = (i == 0) ? 1 : 0; wgpuQueueWriteBuffer(ctx_.queue, layer_params_buffers_[i], 0, ¶ms, sizeof(params)); diff --git a/src/gpu/effects/cnn_v2_effect.h b/src/gpu/effects/cnn_v2_effect.h index 47dedf5..8a2e1b6 100644 --- a/src/gpu/effects/cnn_v2_effect.h +++ b/src/gpu/effects/cnn_v2_effect.h @@ -45,6 +45,7 @@ private: uint32_t weight_offset; uint32_t is_output_layer; float blend_amount; + uint32_t is_layer_0; }; struct StaticFeatureParams { |
