From 850388bcaabf057beed8f126002b7b663183b2d8 Mon Sep 17 00:00:00 2001 From: skal Date: Fri, 20 Feb 2026 12:08:34 +0100 Subject: feat(sequence): port Scene1Effect + fix seq_compiler absolute time bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Scene1 effect: raymarching cube+sphere+ground (reflections, shadows) - Fix scene1.wgsl: binding 0→2, CommonUniforms→UniformsSequenceParams - Replace Heptagon+Placeholder stub in heptagon_scene with Scene1 - Fix seq_compiler.py: emit seq.start_time+effect.start/end (absolute times) so dispatch_render active check works correctly for all sequences Bug: effects in sequences starting after t=0 were never active because local times (e.g. 0-8) never satisfied params.time --- doc/COMPLETED.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'doc') diff --git a/doc/COMPLETED.md b/doc/COMPLETED.md index 1fb51f5..72e389d 100644 --- a/doc/COMPLETED.md +++ b/doc/COMPLETED.md @@ -29,6 +29,19 @@ Detailed historical documents have been moved to `doc/archive/` for reference: Use `read @doc/archive/FILENAME.md` to access archived documents. +## Recently Completed (February 20, 2026) + +- [x] **Port Scene1Effect + Fix seq_compiler Timing Bug** + - **Goal**: Port `scene1.wgsl` (raymarching cube + sphere + ground, reflections, shadows) as `Scene1` effect replacing `Placeholder` stub in `heptagon_scene` sequence. + - **Implementation**: + - `src/effects/scene1_effect.h/.cc`: New effect mirroring Heptagon pattern (dummy texture, `create_post_process_pipeline`). + - `workspaces/main/shaders/scene1.wgsl`: Fixed binding (`@binding(0)` → `@binding(2)`) and struct (`CommonUniforms` → `UniformsSequenceParams`) to match post-process pipeline layout. + - Added to `COMMON_GPU_EFFECTS`, `demo_effects.h`, and `test_demo_effects.cc`. 10/10 effects tested. + - `workspaces/main/timeline.seq`: Replaced Heptagon+Placeholder chain with single `Scene1 source -> sink 0.00 8.00`. + - **Bug Fixed**: `seq_compiler.py` emitted local effect times (e.g. `0.0f, 8.0f`) but `dispatch_render` checks against absolute `params.time`. Effects in sequences starting after t=0 were **never active** (e.g. Scene1 at t=20+ never satisfied `time < 8`). Fixed by emitting `seq.start_time + effect.start/end` as absolute times. All sequences now render correctly. + - **Files**: `src/effects/scene1_effect.{h,cc}` (new), `src/effects/shaders.{h,cc}`, `cmake/DemoSourceLists.cmake`, `src/gpu/demo_effects.h`, `src/tests/gpu/test_demo_effects.cc`, `workspaces/main/shaders/scene1.wgsl`, `workspaces/main/timeline.seq`, `src/generated/timeline.cc`, `tools/seq_compiler.py` + - **Tests**: 34/34 passing + ## Recently Completed (February 18, 2026) - [x] **MQ Spectral Editor Improvements** -- cgit v1.2.3