aboutsummaryrefslogtreecommitdiff
path: root/src/counters
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-04-07 22:16:58 +0200
committerSébastien Crozet <sebastien@crozet.re>2024-04-30 23:10:46 +0200
commit996400726927fb952999afbc36db6e2bfba7d44e (patch)
tree8258505b69d0a0ad928284880137ff090f05b17e /src/counters
parente69e73e589cf4525c96ee7b919032c80ce205244 (diff)
downloadrapier-996400726927fb952999afbc36db6e2bfba7d44e.tar.gz
rapier-996400726927fb952999afbc36db6e2bfba7d44e.tar.bz2
rapier-996400726927fb952999afbc36db6e2bfba7d44e.zip
feat: add some additional perf counters
Diffstat (limited to 'src/counters')
-rw-r--r--src/counters/mod.rs12
-rw-r--r--src/counters/solver_counters.rs17
-rw-r--r--src/counters/stages_counters.rs12
3 files changed, 23 insertions, 18 deletions
diff --git a/src/counters/mod.rs b/src/counters/mod.rs
index 324696f..e707025 100644
--- a/src/counters/mod.rs
+++ b/src/counters/mod.rs
@@ -182,6 +182,12 @@ measure_method!(
stages.solver_time
);
measure_method!(ccd_started, ccd_completed, ccd_time, stages.ccd_time);
+measure_method!(
+ query_pipeline_update_started,
+ query_pipeline_update_completed,
+ query_pipeline_update_time,
+ stages.query_pipeline_time
+);
measure_method!(
assembly_started,
@@ -202,12 +208,6 @@ measure_method!(
solver.velocity_update_time
);
measure_method!(
- position_resolution_started,
- position_resolution_completed,
- position_resolution_time,
- solver.position_resolution_time
-);
-measure_method!(
broad_phase_started,
broad_phase_completed,
broad_phase_time,
diff --git a/src/counters/solver_counters.rs b/src/counters/solver_counters.rs
index babcf41..aced5f3 100644
--- a/src/counters/solver_counters.rs
+++ b/src/counters/solver_counters.rs
@@ -14,10 +14,8 @@ pub struct SolverCounters {
pub velocity_assembly_time: Timer,
/// Time spent for the update of the velocity of the bodies.
pub velocity_update_time: Timer,
- /// Time spent for the assembly of all the position constraints.
- pub position_assembly_time: Timer,
- /// Time spent for the update of the position of the bodies.
- pub position_resolution_time: Timer,
+ /// Time spent to write force back to user-accessible data.
+ pub velocity_writeback_time: Timer,
}
impl SolverCounters {
@@ -29,8 +27,7 @@ impl SolverCounters {
velocity_assembly_time: Timer::new(),
velocity_resolution_time: Timer::new(),
velocity_update_time: Timer::new(),
- position_assembly_time: Timer::new(),
- position_resolution_time: Timer::new(),
+ velocity_writeback_time: Timer::new(),
}
}
@@ -41,8 +38,7 @@ impl SolverCounters {
self.velocity_resolution_time.reset();
self.velocity_assembly_time.reset();
self.velocity_update_time.reset();
- self.position_assembly_time.reset();
- self.position_resolution_time.reset();
+ self.velocity_writeback_time.reset();
}
}
@@ -57,11 +53,10 @@ impl Display for SolverCounters {
self.velocity_resolution_time
)?;
writeln!(f, "Velocity update time: {}", self.velocity_update_time)?;
- writeln!(f, "Position assembly time: {}", self.position_assembly_time)?;
writeln!(
f,
- "Position resolution time: {}",
- self.position_resolution_time
+ "Velocity writeback time: {}",
+ self.velocity_writeback_time
)
}
}
diff --git a/src/counters/stages_counters.rs b/src/counters/stages_counters.rs
index b61adb7..7e3198a 100644
--- a/src/counters/stages_counters.rs
+++ b/src/counters/stages_counters.rs
@@ -14,6 +14,10 @@ pub struct StagesCounters {
pub solver_time: Timer,
/// Total time spent for CCD and CCD resolution.
pub ccd_time: Timer,
+ /// Total time spent updating the query pipeline (if provided to `PhysicsPipeline::step`).
+ pub query_pipeline_time: Timer,
+ /// Total time spent propagating user changes.
+ pub user_changes: Timer,
}
impl StagesCounters {
@@ -25,6 +29,8 @@ impl StagesCounters {
island_construction_time: Timer::new(),
solver_time: Timer::new(),
ccd_time: Timer::new(),
+ query_pipeline_time: Timer::new(),
+ user_changes: Timer::new(),
}
}
@@ -35,6 +41,8 @@ impl StagesCounters {
self.island_construction_time.reset();
self.solver_time.reset();
self.ccd_time.reset();
+ self.query_pipeline_time.reset();
+ self.user_changes.reset();
}
}
@@ -52,6 +60,8 @@ impl Display for StagesCounters {
self.island_construction_time
)?;
writeln!(f, "Solver time: {}", self.solver_time)?;
- writeln!(f, "CCD time: {}", self.ccd_time)
+ writeln!(f, "CCD time: {}", self.ccd_time)?;
+ writeln!(f, "Query pipeline time: {}", self.query_pipeline_time)?;
+ writeln!(f, "User changes time: {}", self.user_changes)
}
}