mirror of
https://github.com/bevyengine/bevy
synced 2024-12-23 03:23:20 +00:00
f187d9c5fc
# Objective Reading system information severely slows down the update loop. Fixes #12848. ## Solution Read system info in a separate thread. ## Testing - Open the scene 3d example - Add `FrameTimeDiagnosticsPlugin`, `SystemInformationDiagnosticsPlugin` and `LogDiagnosticsPlugin` to the app. - Add this system to the update schedule to disable Vsync on the main window ```rust fn change_window_mode(mut windows: Query<&mut Window, Added<Window>>) { for mut window in &mut windows { window.present_mode = PresentMode::AutoNoVsync; } } ``` - Read the fps values in the console before and after this PR. On my PC I went from around 50 fps to around 1150 fps. --- ## Changelog ### Changed - The `SystemInformationDiagnosticsPlugin` now reads system data separate of the update cycle. ### Added - The `EXPECTED_SYSTEM_INFORMATION_INTERVAL` constant which defines how often we read system diagnostic data. --------- Co-authored-by: IceSentry <IceSentry@users.noreply.github.com>
43 lines
1.5 KiB
TOML
43 lines
1.5 KiB
TOML
[package]
|
|
name = "bevy_diagnostic"
|
|
version = "0.14.0-dev"
|
|
edition = "2021"
|
|
description = "Provides diagnostic functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
[features]
|
|
# Disables diagnostics that are unsupported when Bevy is dynamically linked
|
|
dynamic_linking = []
|
|
sysinfo_plugin = ["sysinfo"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_app = { path = "../bevy_app", version = "0.14.0-dev" }
|
|
bevy_core = { path = "../bevy_core", version = "0.14.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.14.0-dev" }
|
|
bevy_time = { path = "../bevy_time", version = "0.14.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.14.0-dev" }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.14.0-dev" }
|
|
|
|
const-fnv1a-hash = "1.1.0"
|
|
|
|
# MacOS
|
|
[target.'cfg(all(target_os="macos"))'.dependencies]
|
|
# Some features of sysinfo are not supported by apple. This will disable those features on apple devices
|
|
sysinfo = { version = "0.30.0", optional = true, default-features = false, features = [
|
|
"apple-app-store",
|
|
] }
|
|
|
|
# Only include when not bevy_dynamic_plugin and on linux/windows/android
|
|
[target.'cfg(any(target_os = "linux", target_os = "windows", target_os = "android"))'.dependencies]
|
|
sysinfo = { version = "0.30.0", optional = true, default-features = false }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["-Zunstable-options", "--cfg", "docsrs"]
|
|
all-features = true
|