Imported video is a Group[Video, Audio] that rendered as a Vello-baked Vector layer, re-uploading the full frame to Vello's image atlas every frame (~17ms/frame at 1080p, hitting playback and export alike). Extract video frames out of the Group/clip scene recursion into VideoRenderInstances so they composite via the GPU Video path; mixed video+vector containers fall back to Vello (correct, unaccelerated). Also route video through hardware sRGB decode: upload raw sRGB bytes to an Rgba8UnormSrgb texture and blit with a non-unpremultiplying shader variant (blit_straight), removing the per-frame per-pixel CPU sRGB->linear pass. Add an F3 GPU-timestamp timer and a per-frame video texture cache. Drops the live composite of a 1080p video from ~17ms to ~2-3ms. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| alpha_composite.wgsl | ||
| blit.wgsl | ||
| brush_dab.wgsl | ||
| canvas_blit.wgsl | ||
| canvas_readback_srgb.wgsl | ||
| cqt_compute.wgsl | ||
| cqt_render.wgsl | ||
| gradient_fill.wgsl | ||
| linear_to_srgb.wgsl | ||
| liquify_brush.wgsl | ||
| raster_transform.wgsl | ||
| srgb_to_linear.wgsl | ||
| warp_apply.wgsl | ||
| waveform.wgsl | ||
| waveform_mipgen.wgsl | ||