aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/narrow_phase.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-07-11 18:19:28 +0200
committerCrozet Sébastien <developer@crozet.re>2021-07-11 18:20:01 +0200
commit71519b72deefa9c0b564d7f790d6c7c564d58a5e (patch)
tree15525a9b1f779174435482ff6c60c13e519d19ff /src/geometry/narrow_phase.rs
parent62d6b0651b35b5b354c18b386d8a4e2c9669fd2f (diff)
downloadrapier-71519b72deefa9c0b564d7f790d6c7c564d58a5e.tar.gz
rapier-71519b72deefa9c0b564d7f790d6c7c564d58a5e.tar.bz2
rapier-71519b72deefa9c0b564d7f790d6c7c564d58a5e.zip
Various broken performance experiments
Diffstat (limited to 'src/geometry/narrow_phase.rs')
-rw-r--r--src/geometry/narrow_phase.rs29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/geometry/narrow_phase.rs b/src/geometry/narrow_phase.rs
index bbabc95..843015e 100644
--- a/src/geometry/narrow_phase.rs
+++ b/src/geometry/narrow_phase.rs
@@ -654,23 +654,31 @@ impl NarrowPhase {
+ ComponentSet<ColliderFlags>
+ ComponentSetOption<ColliderParent>,
{
+ let mut num_delete = 0;
for event in broad_phase_events {
match event {
BroadPhasePairEvent::AddPair(pair) => {
self.add_pair(colliders, pair);
}
BroadPhasePairEvent::DeletePair(pair) => {
- self.remove_pair(
- islands.as_deref_mut(),
- colliders,
- bodies,
- pair,
- events,
- PairRemovalMode::Auto,
- );
+ num_delete += 1;
+ // self.remove_pair(
+ // islands.as_deref_mut(),
+ // colliders,
+ // bodies,
+ // pair,
+ // events,
+ // PairRemovalMode::Auto,
+ // );
}
}
}
+
+ println!(
+ "Delete events: {}, add events: {}",
+ num_delete,
+ broad_phase_events.len() - num_delete
+ );
}
pub(crate) fn compute_intersections<Bodies, Colliders>(
@@ -818,6 +826,9 @@ impl NarrowPhase {
}
let query_dispatcher = &*self.query_dispatcher;
+ println!("num threads: {}", rayon::current_num_threads());
+ let t0 = instant::now();
+ println!("Num contacts: {}", self.contact_graph.graph.edges.len());
// TODO: don't iterate on all the edges.
par_iter_mut!(&mut self.contact_graph.graph.edges).for_each(|edge| {
@@ -1021,6 +1032,8 @@ impl NarrowPhase {
pair.has_any_active_contact = has_any_active_contact;
}
});
+
+ println!("NF time: {}", instant::now() - t0);
}
/// Retrieve all the interactions with at least one contact point, happening between two active bodies.