Bevy findings

Performance and behaviour findings in Bevy 0.19 against 0.18, with stock repros

View the Project on GitHub ghoulspa/bevy-findings

2. A higher CPU floor per frame

Versions: 0.19.1 against 0.18.1.

repros/shadow-cameras with cubes (light enough that the CPU sets the frame) and no shadows, median frame, two launches each:

  0.18.1 0.19.1
--shape cube --shadows off 1.97, 1.75 ms 2.44, 2.43 ms

About half a millisecond a frame on a Core i5-9500. In a larger application the gap at its lowest settings was 0.8-1.1 ms a frame, most of it on the render thread: 0.19 runs each view’s passes as a schedule of systems, and per view that costs more than 0.18’s render graph did.

Upstream already tracks this: bevyengine/bevy#25576 (every point and spot shadow view runs a whole Core3d schedule) and bevyengine/bevy#24957 (restores the parallel command buffer finish, milestone 0.20).

Two related costs found on the way, with what took them down: