Files
effectcraft/crates/render
Vikram Bhaskaran fb715d9015 Render: drop the blanket layer cover from effect stacks; effects pay only what they need (#1205)
Since #659 every text or shape layer with an enabled video effect grew its
effect buffer to the comp-sized layer rectangle before the stack ran, so
glow and blur — which only need their own margins — allocated a 1920x1080
RGBA32F texture per layer per frame in flight (~5 GB peak VRAM in parallel
export, measured on an RTX 3090).

Effects that actually place pixels outside the painted content already
grow the buffer themselves by exactly what they need (CC Tiler, CC Smear,
CC Mosaic sharp via layer_cover_pad / Buf::pad), on CPU and GPU. The
blanket target.cover(layer_size) in Renderer::run_effects_on, the
FxTarget::cover trait method with its CPU default, and the GPU
GpuTarget::cover texture allocation are removed; Buf::cover/cover_plan
stay as the effects-crate helpers they were designed as.

The #659 regression tests (tiling across the layer region, centred-shape
edge pinning) and the render/effects/gpu suites pass unchanged.
2026-10-14 00:32:56 +11:00
..