From 159ca2ca19345515cdfebed9fd88646730492cd2 Mon Sep 17 00:00:00 2001 From: skal Date: Sun, 22 Mar 2026 16:21:25 +0100 Subject: feat(cnn_v3): add G-buffer visualizer + web sample loader (Phase 7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit C++ GBufViewEffect: renders all 20 feature channels from feat_tex0/feat_tex1 in a 4×5 tiled grid. Custom BGL with WGPUTextureSampleType_Uint; bind group rebuilt per frame via wgpuRenderPipelineGetBindGroupLayout. Web tool: "Load sample directory" button — webkitdirectory picker, FULL_PACK_SHADER compute (matches gbuf_pack.wgsl packing), runFromFeat() skips photo-pack step, computePSNR() readback + comparison vs target.png side-by-side. 36/36 tests pass. Docs updated: HOWTO.md §9, README, PROJECT_CONTEXT, TODO, COMPLETED. handoff(Gemini): CNN v3 Phase 7 done. Next: run train_cnn_v3.py (see HOWTO §3). --- src/tests/gpu/test_demo_effects.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/tests/gpu') diff --git a/src/tests/gpu/test_demo_effects.cc b/src/tests/gpu/test_demo_effects.cc index f5af5a9..d6e9c8a 100644 --- a/src/tests/gpu/test_demo_effects.cc +++ b/src/tests/gpu/test_demo_effects.cc @@ -89,6 +89,11 @@ static void test_effects() { fixture.ctx(), std::vector{"gbuf_feat0", "gbuf_feat1"}, std::vector{"cnn_v3_output"}, 0.0f, 1000.0f)}, + {"GBufViewEffect", + std::make_shared( + fixture.ctx(), + std::vector{"gbuf_feat0", "gbuf_feat1"}, + std::vector{"gbuf_view_out"}, 0.0f, 1000.0f)}, }; int passed = 0; -- cgit v1.2.3