T3: golden-image tests for the renderer + GPU parity; fix stale GPU uploads

crates/golden (test-only, L3): nine procedural 320x180 scenes (transform
and opacity, blend modes, Gaussian Blur, Lumetri basic, Crop, Cross
Dissolve / Dip to Black / Wipe mid-transition, timecode/clip-name text)
rendered on the CPU and compared with committed goldens (PSNR >= 45 dB,
max <= 12, p99 <= 2); FILMCRAFT_BLESS=1 regenerates them with
attribution sidecars. testkit::golden adds PNG I/O, diff metrics and
failure images. The same scenes are composited on the GPU and compared
with the CPU.

GPU parity exposed a real bug: GpuCompositor cached uploads by
pixel-buffer address without owning the buffer, so a new frame
allocated at a freed frame's address was drawn with a stale texture
(whole wrong frames, PSNR ~12 dB). The cache now keeps the buffer
alive; regression test upload_cache_keeps_buffers_alive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas
2026-10-01 00:26:14 -04:00
co-authored by Claude Opus 5.5
parent 3704002f89
commit 7655447233
30 changed files with 879 additions and 8 deletions
+1
View File
@@ -46,6 +46,7 @@ const LAYERS: &[(&str, u8)] = &[
("interchange", 2),
("render", 3),
("gpu", 3),
("golden", 3),
("scopes", 3),
("playback", 3),
("export", 3),