From 6f7e536ca67020f925562c92d32a267a249ae9b3 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Sun, 4 Oct 2026 02:56:16 -0400 Subject: [PATCH] M13.28: architecture notes for the part C GPU effects Co-Authored-By: Claude Opus 5.5 --- docs/architecture.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index f9906009..418c3c5e 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -209,7 +209,7 @@ Preserve Transparency / blend kernels (a 3D track matte renders solo through the Environment Light Background layers draw their sky in a kernel (`adv_sky`, from `Renderer::sky_draw`) before the rest of the run, in Classic and Advanced 3D comps. Wireframe outlines draw on the GPU from the CPU's pixel list (`Renderer::wireframe_pixels`). GPU effects -(`effects::GPU_EFFECTS`, 236 of them: blurs, colour correction, keying incl. Key Light, mattes, +(`effects::GPU_EFFECTS`, 273 of them: blurs, colour correction, keying incl. Key Light, mattes, channel, stylize, distortion and warps (Warp, Bezier Warp, Smear, Reshape, CC Bend It, CC Page Turn, CC Bender, CC Blobbylize), Cartoon, bevels, shapes, the transitions (CC light family, CC transitions, Block Dissolve), perspective (Radial Shadow, CC Cylinder / Sphere / Spotlight / @@ -217,7 +217,10 @@ Environment, 3D Glasses), generators, noise, grain, text (Numbers, Timecode), ti extra texture), Immersive Video, colour management (colour programs from `effects::color_program`, LUTs in a storage buffer) and the simulations' render passes (the simulation stays on the CPU and hands its plan — sprites, pieces, blobs, grids — to a tiled -rasteriser); see +rasteriser), and the geometry generators (Lightning, Advanced Lightning, Radio Waves, Stroke, +Scribble, Vegas, Write-on, Audio Spectrum / Waveform, Basic / Path Text: bolts, strokes, waves, +audio marks and glyphs are planned on the CPU, shared with the CPU effect, and rasterised in +tiles with the CPU's coverage functions); see [effects.md](effects.md)) repeat the CPU effect's steps (padding, box radii, parameters, hashes) as kernels, in one module per family (`gpu::fx_*` with `shaders/fx_*.wgsl`); consecutive GPU effects run as one chain with one upload and one readback. Statistics that need the whole frame