effectcraft/crates
Brandon Thomas a2ff724ac2 M12.1: render cache + parallel compositing fast paths
- render: LayerCache (content-keyed processed-layer cache: source -> masks ->
  effects, keyed by a hash of the layer's non-transform props evaluated at the
  frame time, solid item, switches, scale; time folded in for clock-driven
  effects / wiggle paths). Static and transform-only layers render once;
  edits only re-render the edited layer. Session + UI frame jobs share it.
- effects: TIME_DEPENDENT list + test that every clock-reading effect is listed.
- raster: affine composite fast path (per-row span clipping, unchecked interior
  bilinear, integer-translation copies, inlined Normal blend), checked against
  composite_warp_reference; box/Gaussian blur without transposes, two
  ping-pong buffers; accumulate_warp so motion blur sums into one buffer
  instead of one full-frame image per sub-sample.
- ui: viewer frame is urgent and jumps the prefetch queue; stale-revision jobs
  are dropped; paused prefetch waits for the viewer frame; "Frame Render Time"
  reports viewer frames only; parallel f32 -> Color32 conversion.
- cli: `frame --bench N` (per-layer/per-effect timings, wall + CPU time) and
  `frame --bench-play N` (consecutive frames with/without the layer cache).
- tests: cache transparency (scrub, edits of values/keys/effects/masks/
  solids/text/timing), hit/miss accounting, time-dependent effects, demo
  cached == uncached, fast warp/blur/accumulate == reference.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 21:34:33 -04:00
..
color M0.9–M0.10: egui frontend (AE-style panels, viewer, timeline, effect controls, dialogs), desktop app with control channel, host wiring; cargo fmt 2026-10-01 14:48:31 -04:00
effects M12.1: render cache + parallel compositing fast paths 2026-10-01 21:34:33 -04:00
engine M12.1: render cache + parallel compositing fast paths 2026-10-01 21:34:33 -04:00
expr M8: expressions engine (boa) with AE object model 2026-10-01 14:39:02 -04:00
geom M0.9–M0.10: egui frontend (AE-style panels, viewer, timeline, effect controls, dialogs), desktop app with control channel, host wiring; cargo fmt 2026-10-01 14:48:31 -04:00
host M0.9–M0.10: egui frontend (AE-style panels, viewer, timeline, effect controls, dialogs), desktop app with control channel, host wiring; cargo fmt 2026-10-01 14:48:31 -04:00
keyframe M0.9–M0.10: egui frontend (AE-style panels, viewer, timeline, effect controls, dialogs), desktop app with control channel, host wiring; cargo fmt 2026-10-01 14:48:31 -04:00
media M6.8: media import via FilmCraft codecs (probe, frame cache, stills, sequences) 2026-10-01 14:28:14 -04:00
path M6.2: shape path operators (round corners, offset, twist, zig zag, wiggle, merge paths, gradient stroke) 2026-10-01 14:26:28 -04:00
project M0.9–M0.10: egui frontend (AE-style panels, viewer, timeline, effect controls, dialogs), desktop app with control channel, host wiring; cargo fmt 2026-10-01 14:48:31 -04:00
raster M12.1: render cache + parallel compositing fast paths 2026-10-01 21:34:33 -04:00
render M12.1: render cache + parallel compositing fast paths 2026-10-01 21:34:33 -04:00
text M0.1–M0.7: workspace, time/geom/color/keyframe/project/raster/path/text/effects/render crates 2026-10-01 14:05:20 -04:00
time M0.1–M0.7: workspace, time/geom/color/keyframe/project/raster/path/text/effects/render crates 2026-10-01 14:05:20 -04:00
ui-egui M12.1: render cache + parallel compositing fast paths 2026-10-01 21:34:33 -04:00