bevy/crates
Daniel Skates d45ae74286
Add frame_time graph to fps_overlay v2 (#19277)
# Objective

- Rebase of https://github.com/bevyengine/bevy/pull/12561 , note that
this is blocked on "up-streaming
[iyes_perf_ui](https://crates.io/crates/iyes_perf_ui)" , but that work
seems to also be stalled

> Frame time is often more important to know than FPS but because of the
temporal nature of it, just seeing a number is not enough. Seeing a
graph that shows the history makes it easier to reason about
performance.

## Solution

> This PR adds a bar graph of the frame time history.
> 
> Each bar is scaled based on the frame time where a bigger frame time
will give a taller and wider bar.
> 
> The color also scales with that frame time where red is at or bellow
the minimum target fps and green is at or above the target maximum frame
rate. Anything between those 2 values will be interpolated between green
and red based on the frame time.
> 
> The algorithm is highly inspired by this article:
https://asawicki.info/news_1758_an_idea_for_visualization_of_frame_times

## Testing

- Ran `cargo run --example fps_overlay --features="bevy_dev_tools"`

---------

Co-authored-by: IceSentry <c.giguere42@gmail.com>
Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
2025-07-09 16:59:21 +00:00
..
bevy_a11y Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_animation remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_anti_aliasing Clean up several miscellaneous uses of weak_handle. (#19408) 2025-07-08 06:45:40 +00:00
bevy_app Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00
bevy_asset Clean up several miscellaneous uses of weak_handle. (#19408) 2025-07-08 06:45:40 +00:00
bevy_audio remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_camera consistently dont use smallvec default features (#19972) 2025-07-06 04:25:26 +00:00
bevy_color Ugrade to wgpu version 25.0 (#19563) 2025-06-26 19:41:47 +00:00
bevy_core_pipeline Clean up several miscellaneous uses of weak_handle. (#19408) 2025-07-08 06:45:40 +00:00
bevy_core_widgets Change CoreWidgets plugin to plugin group. (#20036) 2025-07-09 01:07:49 +00:00
bevy_derive Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_dev_tools Add frame_time graph to fps_overlay v2 (#19277) 2025-07-09 16:59:21 +00:00
bevy_diagnostic remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_dylib Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_ecs Simplify self-edge checking in schedule building (#20015) 2025-07-08 18:09:45 +00:00
bevy_encase_derive Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_feathers Feathers toggle switches. (#19928) 2025-07-03 01:09:31 +00:00
bevy_gilrs remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_gizmos remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_gltf remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_image optimize ktx2 level data concatenation (#19845) 2025-06-29 21:59:56 +00:00
bevy_input Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00
bevy_input_focus Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00
bevy_internal make optional crates for mesh, camera, and light (#19997) 2025-07-07 07:35:32 +00:00
bevy_light Move IrradianceVolume to bevy_light (#20000) 2025-07-07 20:11:43 +00:00
bevy_log Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_macro_utils Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_math bevy_math: don't allow dead code (#20039) 2025-07-08 17:46:01 +00:00
bevy_mesh remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_mikktspace Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_pbr Material, mesh, skin extraction optimization (#17976) 2025-07-09 06:23:44 +00:00
bevy_picking Bump typos to 1.34.0 (#20013) 2025-07-07 20:15:06 +00:00
bevy_platform bevy_platform: clippy without default features (#19860) 2025-06-29 17:12:57 +00:00
bevy_ptr Add newlines before impl blocks (#19746) 2025-06-22 23:07:02 +00:00
bevy_reflect Bump typos to 1.34.0 (#20013) 2025-07-07 20:15:06 +00:00
bevy_remote formatting fix in bevy_remote cargo.toml (#20033) 2025-07-08 17:02:02 +00:00
bevy_render enable syn/full in bevy_render_macros (#20034) 2025-07-08 17:08:20 +00:00
bevy_scene Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_solari Make render and compute pipeline descriptors defaultable. (#19903) 2025-07-02 18:47:27 +00:00
bevy_sprite Material, mesh, skin extraction optimization (#17976) 2025-07-09 06:23:44 +00:00
bevy_state Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00
bevy_tasks Update derive_more requirement from 1 to 2 (#19671) 2025-06-24 11:13:04 +00:00
bevy_text consistently dont use smallvec default features (#19972) 2025-07-06 04:25:26 +00:00
bevy_time Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00
bevy_transform Update derive_more requirement from 1 to 2 (#19671) 2025-06-24 11:13:04 +00:00
bevy_ui Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00
bevy_ui_render UI gradients long hue paths fix (#20010) 2025-07-07 22:19:24 +00:00
bevy_utils Make Parallel<T> more T: !Default accessible (#17943) 2025-07-07 20:22:20 +00:00
bevy_window remove unused dependencies (#19998) 2025-07-07 20:10:33 +00:00
bevy_winit Rename send_event and similar methods to write_event (#20017) 2025-07-07 22:05:16 +00:00