Skip to content

v4.39 - Optimised, plus a two-track soundtrack

Latest

Choose a tag to compare

@djayuffe djayuffe released this 11 Oct 04:50

Performance

Measured on an Apple M1 Pro at Retina resolution:

v4.38 v4.39
Scenes over 16.7 ms CPU per frame 25 of 59 0
Worst scene CPU per frame (Tanglecube) 256 ms avg, 2.9 s peak 3.2 ms avg
Edges after the effect chain up to 404,000 at most 60,000
Simplest scene, uncapped 34 fps 167 fps
Schwarz D / Tanglecube 3.8 / 2.9 fps 109 / 106 fps
Stress run, 600 BPM, 83 scene changes worst frame 8.9 ms CPU
  • Effects: sort-based duplicate removal only where duplicates can arise, a 60,000-edge budget, undo on non-finite output.
  • Scenes build on worker threads and are prefetched; the render loop never waits for a rebuild.
  • Uploads: O(edges) check, direct index upload, buffer orphaning.
  • GPU: the procedural background and art layer render in a half-resolution pass, skipped while a logo card covers the screen. --quality now helps (about +35% at 0.5).

Fixes

  • A rejected mesh no longer ends the show. Full-screen is vsynced. The beat solarize flash no longer turns black grey.

Music

  • Playlist: "Stars (4ch. version)" by cs127 (CC BY 4.0), then "Digital Rendezvous" by Drozerix (The Mod Archive 180821, Public Domain), looping; credit and tempo switch with the track, without a beat jump. WAV playback and the looping-clock fix from v4.38.

New

  • --stats (fps and CPU time per frame), --no-vsync, repeatable --music.
  • Regression tests for the edge budget, effect validity and the async scene fetch.

CI green on macOS, Linux and Windows.