effectcraft/crates/gpu/src
bflatastic e64076e432 GPU: running out of video memory falls back to the CPU instead of crashing (#106)
The desktop app shares egui-wgpu's device, which had no uncaptured-error
handler, so wgpu's default one panicked on an out-of-memory error on
every frame thread; the panicking frame stayed "in progress" forever and
never rendered again. The GPU frame budget was a fixed 1 GiB.

- GpuContext::new logs uncaptured errors once its pipelines are built
  (errors while building them still panic there, which the app catches
  to fall back to CPU compositing).
- Gpu::within_memory runs GPU work in an out-of-memory error scope; on an
  error the result is discarded and uploaded layers and pooled textures
  are freed.
- Frame workers render each frame within it; out of memory, the frame
  renders on the CPU and the RAM preview keeps half as many GPU frames
  (down to 64 MiB), since wgpu can't tell how much video memory there is.
- A frame whose render panics renders again on the CPU, or is released,
  so the viewer asks for it again.

Tests: a_frame_whose_render_panics_is_released (failed before),
running_out_of_video_memory_halves_the_gpu_frame_budget and
within_memory_returns_the_work_when_there_is_room.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 02:06:15 +07:00
..
shaders G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
adv3d.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
bokeh.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
classic3d.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
context.rs GPU: running out of video memory falls back to the CPU instead of crashing (#106) 2026-10-07 02:06:15 +07:00
deferred.rs M13.24: web app depth (WEB-1) — GPU effects in frame workers, OPFS disk cache, storage manager 2026-10-03 18:35:03 -04:00
effects.rs Merge main into M13.28 worktree 2026-10-04 02:57:55 -04:00
fx_color.rs M13.23: GPU colour management (LUTs, OCIO, Color Profile Converter, Lumetri LUT/look) 2026-10-03 17:43:24 -04:00
fx_depth.rs M13.23: GPU 3D Channel effects (aux channels as textures) 2026-10-03 17:33:41 -04:00
fx_distort.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
fx_extra.rs M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
fx_gen2.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
fx_generate.rs M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
fx_key.rs M13.28: GPU pixel ports (fx_pixel2): CC Cross/Radial/Vector Blur, Reduce Interlace Flicker, CC Composite, Color Link, Cineon, HDR Compander/Highlight Compression, Grow Bounds, CC Overbrights, CC Block Load, CC Burn Film, CC Glass/Plastic, CC HexTile, CC Mr. Smoothie, Inner/Outer Key, CC Simple Wire Removal, Basic 3D 2026-10-04 01:33:54 -04:00
fx_light.rs M13.22: GPU CC light family (CC Light Rays, CC Light Burst 2.5, CC Light Sweep, CC Light Wipe) 2026-10-03 17:31:26 -04:00
fx_lut.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_noise.rs M13.23: GPU Immersive Video effects 2026-10-03 17:53:23 -04:00
fx_particles.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_pixel2.rs M13.28: GPU pixel ports (fx_pixel2): CC Cross/Radial/Vector Blur, Reduce Interlace Flicker, CC Composite, Color Link, Cineon, HDR Compander/Highlight Compression, Grow Bounds, CC Overbrights, CC Block Load, CC Burn Film, CC Glass/Plastic, CC HexTile, CC Mr. Smoothie, Inner/Outer Key, CC Simple Wire Removal, Basic 3D 2026-10-04 01:33:54 -04:00
fx_sim.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_stylize.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
fx_text.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
fx_time.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_tone.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
fx_transition.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
fx_vr.rs M13.23: GPU Immersive Video effects 2026-10-03 17:53:23 -04:00
fx_warp.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
lib.rs GPU: running out of video memory falls back to the CPU instead of crashing (#106) 2026-10-07 02:06:15 +07:00
ops.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
particles.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests.rs GPU: running out of video memory falls back to the CPU instead of crashing (#106) 2026-10-07 02:06:15 +07:00
tests_3d.rs Merge main into M13.6 2026-10-03 07:53:31 -04:00
tests_adjust.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
tests_adv3d.rs GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
tests_deferred.rs GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
tests_deferred_jobs.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
tests_fx_color.rs Merge main into M9.13 (GPU kernels defer CPU-only controls via catalog::gpu_supported) 2026-10-03 07:29:30 -04:00
tests_fx_depth.rs M13.23: GPU 3D Channel effects (aux channels as textures) 2026-10-03 17:33:41 -04:00
tests_fx_distort.rs M12.7: GPU distort/stylize effects (Turbulent Displace, Displacement Map, Wave Warp, Ripple, Twirl, Bulge, CC Lens, Mesh Warp, Mosaic, Find Edges, Emboss) 2026-10-03 02:42:43 -04:00
tests_fx_extra.rs M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
tests_fx_gen2.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
tests_fx_generate.rs M12.7: GPU blur/transition/generate effects (radial, camera lens, CC radial fast, wipes, venetian, cell pattern, checkerboard, grid, 4-color, noise, add grain) 2026-10-03 02:46:09 -04:00
tests_fx_key.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_fx_light.rs M13.22: GPU CC light family (CC Light Rays, CC Light Burst 2.5, CC Light Sweep, CC Light Wipe) 2026-10-03 17:31:26 -04:00
tests_fx_lut.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_fx_noise.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_fx_particles.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_fx_pixel2.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
tests_fx_sim.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_fx_stylize.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
tests_fx_text.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
tests_fx_time.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_fx_tone.rs M13.9: gpu Color Stabilizer apply pass 2026-10-03 08:28:27 -04:00
tests_fx_transition.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
tests_fx_vr.rs M13.23: GPU Immersive Video effects 2026-10-03 17:53:23 -04:00
tests_fx_warp.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_particles.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
walk.rs M13.22: GPU compositing of Advanced 3D runs with blend modes, track mattes (2D and 3D), Preserve Transparency, and environment backgrounds (Classic and Advanced 3D skies) 2026-10-03 18:26:06 -04:00