filmcraft/docs
Brandon Thomas 6102a3794a GPU1: blend modes on the GPU compositor (#30)
All 27 blend modes now composite on the GPU instead of sending the
whole frame to the CPU.

- render::plan: PlanLayer carries its Blend; plan_frame no longer falls
  back to a CPU frame for non-Normal modes. Media, graphic clips,
  multicam angles and CPU-rendered layer images (standard effects) keep
  their clip's mode; inside a transition the mode is Normal, as in the
  CPU reference. execute_cpu composites with each layer's mode.
- gpu: Normal keeps the single fixed-function pass. Dissolve also uses
  fixed-function "over": the CPU's 64-bit pixel hash is reproduced in
  WGSL on u32 pairs (pattern bit-exact). The other 25 modes copy the
  accumulator region under the layer's quad into a backdrop texture and
  composite in fs_blend with the CPU math (sRGB-encoded straight colour,
  W3C formulas, back to linear, same premultiplied mix and clamping).
- Tests: per-mode GPU-vs-CPU parity (gpu crate: overlapping transformed
  layers, partial opacity/alpha, empty/partial backdrop; golden: every
  mode through plan_frame incl. an effect layer, blended clips in a
  cross dissolve), exact-value edge cases (black/white, Divide by 0,
  Dodge/Burn at 0 and 1, zero alpha) within 4.9e-4, Dissolve pattern
  exact, off-output layers, quad bounds.
- Bench: new stack3-blend playback scenario (V2 Screen, V3 Overlay);
  CPU ms/frame 151-214 -> 86-89, Full 19/173 and 138/54 -> 191/1, 192/0.
- Docs: architecture §5, gpu crate docs, testing, performance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 03:25:16 -04:00
..
brand Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:12 -04:00
images README: new hero — Apollo 11 documentary edit (public domain) 2026-10-01 11:17:08 -04:00
agents.md M6.5: export parity — presets, Export mode settings, queue, Quick Export, image sequences 2026-10-02 18:27:19 -04:00
architecture.md GPU1: blend modes on the GPU compositor (#30) 2026-10-05 03:25:16 -04:00
captions.md fix: document that the caption track margin is a fraction of the frame height 2026-10-01 11:18:06 -04:00
contributing.md Rules: never crash — AGENTS.md §0, clippy.toml for tests, forbid unsafe 2026-10-04 11:06:55 -04:00
control-protocol.md Merge branch 'main' into worktree-agent-a8349582751c0ec31 2026-10-03 03:51:43 -04:00
graphics.md M10.7: Essential Graphics Browse/Edit UI, template/font dialogs, golden scenes 2026-10-03 01:02:24 -04:00
keyboard.md M12.7: Project panel and Media Browser parity 2026-10-03 02:14:31 -04:00
monitors.md M4.7: View menu and monitor view options: Paused Resolution, 1/16, High Quality Playback, Display Mode (alpha/RGB channels, comparison, multi-camera, source audio waveform, video+waveform split), Magnification with panning, rulers, guides (drag from rulers, lock, clear, Add Guide, templates in preferences), Snap in Program Monitor 2026-10-01 23:23:27 -04:00
performance.md GPU1: blend modes on the GPU compositor (#30) 2026-10-05 03:25:16 -04:00
project-files.md M10.7: graphics templates (.fcgt), rolls/crawls, responsive design, per-character styles, MCC/STL/TTML/DFXP captions 2026-10-02 22:52:15 -04:00
testing.md GPU1: blend modes on the GPU compositor (#30) 2026-10-05 03:25:16 -04:00
transcripts.md M10.5: Text-based editing / transcripts 2026-10-01 23:25:49 -04:00
web.md Crash and blank-screen fixes (desktop + web) 2026-10-04 00:26:19 -04:00