From 10ca3474e67d53d3d1ec306dd2973d95043ba666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Crozet?= Date: Tue, 31 May 2022 11:49:36 +0200 Subject: [PATCH] Make the`instant` dependency optional, behind a `profiler` cargo feature --- crates/rapier2d-f64/Cargo.toml | 3 ++- crates/rapier2d/Cargo.toml | 3 ++- crates/rapier3d-f64/Cargo.toml | 3 ++- crates/rapier3d/Cargo.toml | 3 ++- crates/rapier_testbed2d-f64/Cargo.toml | 2 +- crates/rapier_testbed2d/Cargo.toml | 2 +- crates/rapier_testbed3d-f64/Cargo.toml | 2 +- crates/rapier_testbed3d/Cargo.toml | 2 +- src/counters/timer.rs | 22 ++++++++++++++++------ src/pipeline/physics_pipeline.rs | 2 +- 10 files changed, 29 insertions(+), 15 deletions(-) diff --git a/crates/rapier2d-f64/Cargo.toml b/crates/rapier2d-f64/Cargo.toml index 4a7d5025..72d05ccd 100644 --- a/crates/rapier2d-f64/Cargo.toml +++ b/crates/rapier2d-f64/Cargo.toml @@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ] serde-serialize = [ "nalgebra/serde-serialize", "parry2d-f64/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ] enhanced-determinism = [ "simba/libm_force", "parry2d-f64/enhanced-determinism", "indexmap" ] debug-render = [ ] +profiler = [ "instant" ] # Enables the internal profiler. # Feature used for debugging only. debug-disable-legitimate-fe-exceptions = [ ] @@ -45,7 +46,7 @@ required-features = [ "dim2", "f64" ] [dependencies] vec_map = { version = "0.8", optional = true } -instant = { version = "0.1", features = [ "now" ]} +instant = { version = "0.1", features = [ "now" ], optional = true } num-traits = "0.2" nalgebra = "0.31" parry2d-f64 = "0.9" diff --git a/crates/rapier2d/Cargo.toml b/crates/rapier2d/Cargo.toml index d9eb7e93..df32e54c 100644 --- a/crates/rapier2d/Cargo.toml +++ b/crates/rapier2d/Cargo.toml @@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ] serde-serialize = [ "nalgebra/serde-serialize", "parry2d/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ] enhanced-determinism = [ "simba/libm_force", "parry2d/enhanced-determinism", "indexmap" ] debug-render = [ ] +profiler = [ "instant" ] # Enables the internal profiler. # Feature used for debugging only. debug-disable-legitimate-fe-exceptions = [ ] @@ -45,7 +46,7 @@ required-features = [ "dim2", "f32" ] [dependencies] vec_map = { version = "0.8", optional = true } -instant = { version = "0.1", features = [ "now" ]} +instant = { version = "0.1", features = [ "now" ], optional = true } num-traits = "0.2" nalgebra = "0.31" parry2d = "0.9" diff --git a/crates/rapier3d-f64/Cargo.toml b/crates/rapier3d-f64/Cargo.toml index 89e0b8b4..328682b9 100644 --- a/crates/rapier3d-f64/Cargo.toml +++ b/crates/rapier3d-f64/Cargo.toml @@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ] serde-serialize = [ "nalgebra/serde-serialize", "parry3d-f64/serde-serialize", "serde", "bit-vec/serde" ] enhanced-determinism = [ "simba/libm_force", "parry3d-f64/enhanced-determinism" ] debug-render = [] +profiler = [ "instant" ] # Enables the internal profiler. # Feature used for debugging only. debug-disable-legitimate-fe-exceptions = [ ] @@ -45,7 +46,7 @@ required-features = [ "dim3", "f64" ] [dependencies] vec_map = { version = "0.8", optional = true } -instant = { version = "0.1", features = [ "now" ]} +instant = { version = "0.1", features = [ "now" ], optional = true } num-traits = "0.2" nalgebra = "0.31" parry3d-f64 = "0.9" diff --git a/crates/rapier3d/Cargo.toml b/crates/rapier3d/Cargo.toml index b6364ea0..e44f3729 100644 --- a/crates/rapier3d/Cargo.toml +++ b/crates/rapier3d/Cargo.toml @@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ] serde-serialize = [ "nalgebra/serde-serialize", "parry3d/serde-serialize", "serde", "bit-vec/serde" ] enhanced-determinism = [ "simba/libm_force", "parry3d/enhanced-determinism" ] debug-render = [ ] +profiler = [ "instant" ] # Enables the internal profiler. # Feature used for debugging only. debug-disable-legitimate-fe-exceptions = [ ] @@ -45,7 +46,7 @@ required-features = [ "dim3", "f32" ] [dependencies] vec_map = { version = "0.8", optional = true } -instant = { version = "0.1", features = [ "now" ]} +instant = { version = "0.1", features = [ "now" ], optional = true } num-traits = "0.2" nalgebra = "0.31" parry3d = "0.9" diff --git a/crates/rapier_testbed2d-f64/Cargo.toml b/crates/rapier_testbed2d-f64/Cargo.toml index 882fced4..236a1b8b 100644 --- a/crates/rapier_testbed2d-f64/Cargo.toml +++ b/crates/rapier_testbed2d-f64/Cargo.toml @@ -55,4 +55,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re package = "rapier2d-f64" path = "../rapier2d-f64" version = "0.12.0" -features = [ "serde-serialize", "debug-render" ] +features = [ "serde-serialize", "debug-render", "profiler" ] diff --git a/crates/rapier_testbed2d/Cargo.toml b/crates/rapier_testbed2d/Cargo.toml index 6c36e699..d4d9b71d 100644 --- a/crates/rapier_testbed2d/Cargo.toml +++ b/crates/rapier_testbed2d/Cargo.toml @@ -55,4 +55,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re package = "rapier2d" path = "../rapier2d" version = "0.12.0" -features = [ "serde-serialize", "debug-render" ] +features = [ "serde-serialize", "debug-render", "profiler" ] diff --git a/crates/rapier_testbed3d-f64/Cargo.toml b/crates/rapier_testbed3d-f64/Cargo.toml index 9d8d6f95..7e5b2f1c 100644 --- a/crates/rapier_testbed3d-f64/Cargo.toml +++ b/crates/rapier_testbed3d-f64/Cargo.toml @@ -53,4 +53,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re package = "rapier3d-f64" path = "../rapier3d-f64" version = "0.12.0" -features = [ "serde-serialize", "debug-render" ] \ No newline at end of file +features = [ "serde-serialize", "debug-render", "profiler" ] \ No newline at end of file diff --git a/crates/rapier_testbed3d/Cargo.toml b/crates/rapier_testbed3d/Cargo.toml index e24d509f..31a78d0c 100644 --- a/crates/rapier_testbed3d/Cargo.toml +++ b/crates/rapier_testbed3d/Cargo.toml @@ -57,4 +57,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re package = "rapier3d" path = "../rapier3d" version = "0.12.0" -features = [ "serde-serialize", "debug-render" ] \ No newline at end of file +features = [ "serde-serialize", "debug-render", "profiler" ] \ No newline at end of file diff --git a/src/counters/timer.rs b/src/counters/timer.rs index fd250638..bc0397d3 100644 --- a/src/counters/timer.rs +++ b/src/counters/timer.rs @@ -4,6 +4,7 @@ use std::fmt::{Display, Error, Formatter}; #[derive(Copy, Clone, Debug, Default)] pub struct Timer { time: f64, + #[allow(dead_code)] // The field isn’t used if the `profiler` feature isn’t enabled. start: Option, } @@ -23,21 +24,30 @@ impl Timer { /// Start the timer. pub fn start(&mut self) { - self.time = 0.0; - self.start = Some(instant::now()); + #[cfg(feature = "profiler")] + { + self.time = 0.0; + self.start = Some(instant::now()); + } } /// Pause the timer. pub fn pause(&mut self) { - if let Some(start) = self.start { - self.time += instant::now() - start; + #[cfg(feature = "profiler")] + { + if let Some(start) = self.start { + self.time += instant::now() - start; + } + self.start = None; } - self.start = None; } /// Resume the timer. pub fn resume(&mut self) { - self.start = Some(instant::now()); + #[cfg(feature = "profiler")] + { + self.start = Some(instant::now()); + } } /// The measured time between the last `.start()` and `.pause()` calls. diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs index 012f40f0..19749be7 100644 --- a/src/pipeline/physics_pipeline.rs +++ b/src/pipeline/physics_pipeline.rs @@ -54,7 +54,7 @@ impl PhysicsPipeline { /// Initializes a new physics pipeline. pub fn new() -> PhysicsPipeline { PhysicsPipeline { - counters: Counters::new(false), + counters: Counters::new(true), solvers: Vec::new(), manifold_indices: Vec::new(), joint_constraint_indices: Vec::new(),