[package] name = "benches" edition = "2024" description = "Benchmarks that test Bevy's performance" publish = false license = "MIT OR Apache-2.0" # Do not automatically discover benchmarks, we specify them manually instead. autobenches = false [dependencies] # The primary crate that runs and analyzes our benchmarks. This is a regular dependency because the # `bench!` macro refers to it in its documentation. criterion = { version = "0.5.1", features = ["html_reports"] } [dev-dependencies] # Bevy crates bevy_app = { path = "../crates/bevy_app" } bevy_ecs = { path = "../crates/bevy_ecs", features = ["multi_threaded"] } bevy_math = { path = "../crates/bevy_math" } bevy_picking = { path = "../crates/bevy_picking", features = [ "bevy_mesh_picking_backend", ] } bevy_reflect = { path = "../crates/bevy_reflect", features = ["functions"] } bevy_render = { path = "../crates/bevy_render" } bevy_tasks = { path = "../crates/bevy_tasks" } bevy_utils = { path = "../crates/bevy_utils" } bevy_platform_support = { path = "../crates/bevy_platform_support", default-features = false, features = [ "std", ] } # Other crates glam = "0.29" rand = "0.8" rand_chacha = "0.3" # Make `bevy_render` compile on Linux with x11 windowing. x11 vs. Wayland does not matter here # because the benches do not actually open any windows. [target.'cfg(target_os = "linux")'.dev-dependencies] bevy_winit = { path = "../crates/bevy_winit", features = ["x11"] } [lints.clippy] doc_markdown = "warn" manual_let_else = "warn" match_same_arms = "warn" redundant_closure_for_method_calls = "warn" redundant_else = "warn" semicolon_if_nothing_returned = "warn" type_complexity = "allow" undocumented_unsafe_blocks = "warn" unwrap_or_default = "warn" needless_lifetimes = "allow" too_many_arguments = "allow" nonstandard_macro_braces = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" ref_as_ptr = "warn" # see: https://github.com/bevyengine/bevy/pull/15375#issuecomment-2366966219 too_long_first_doc_paragraph = "allow" allow_attributes = "warn" allow_attributes_without_reason = "warn" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(docsrs_dep)'] } unsafe_op_in_unsafe_fn = "warn" unused_qualifications = "warn" [lib] # This fixes the "Unrecognized Option" error when running commands like # `cargo bench -- --save-baseline before` by disabling the default benchmark harness. # See # for more information. bench = false [[bench]] name = "ecs" path = "benches/bevy_ecs/main.rs" harness = false [[bench]] name = "math" path = "benches/bevy_math/main.rs" harness = false [[bench]] name = "picking" path = "benches/bevy_picking/main.rs" harness = false [[bench]] name = "reflect" path = "benches/bevy_reflect/main.rs" harness = false [[bench]] name = "render" path = "benches/bevy_render/main.rs" harness = false [[bench]] name = "tasks" path = "benches/bevy_tasks/main.rs" harness = false