feat: persistent islands + manifold reduction (#895)
* feat: initial implementation of contact manifold reduction * feat: try bepu-like manifold reduction * feat: simplification of the constraints counting and indexing logic * feat: add concept of incremental islands with a single awake island More islands manager fixes * feat: start adding support for multiple awake islands * feat: add more timings * feat: implement incremental island split & merge * chore: refactor islands manager into multiple files * chore: refactor manifold reduction to its own file + add naive reduction method * feat: add islands manager validation checks * fix various bugs in the new islands system * chore: remove redundant active_set_offset field
This commit is contained in:
@@ -320,6 +320,10 @@ fn profiling_ui(ui: &mut Ui, counters: &Counters) {
|
||||
"Broad-phase: {:.2}ms",
|
||||
counters.broad_phase_time_ms()
|
||||
));
|
||||
ui.label(format!(
|
||||
"Final broad-phase: {:.2}ms",
|
||||
counters.cd.final_broad_phase_time.time_ms()
|
||||
));
|
||||
ui.label(format!(
|
||||
"Narrow-phase: {:.2}ms",
|
||||
counters.narrow_phase_time_ms()
|
||||
@@ -332,6 +336,20 @@ fn profiling_ui(ui: &mut Ui, counters: &Counters) {
|
||||
"Velocity assembly: {:.2}ms",
|
||||
counters.solver.velocity_assembly_time.time_ms()
|
||||
));
|
||||
ui.label(format!(
|
||||
"> Velocity assembly - solver bodies: {:.2}ms",
|
||||
counters
|
||||
.solver
|
||||
.velocity_assembly_time_solver_bodies
|
||||
.time_ms()
|
||||
));
|
||||
ui.label(format!(
|
||||
"> Velocity assembly - constraints init: {:.2}ms",
|
||||
counters
|
||||
.solver
|
||||
.velocity_assembly_time_constraints_init
|
||||
.time_ms()
|
||||
));
|
||||
ui.label(format!(
|
||||
"Velocity resolution: {:.2}ms",
|
||||
counters.velocity_resolution_time_ms()
|
||||
@@ -370,10 +388,16 @@ fn profiling_ui(ui: &mut Ui, counters: &Counters) {
|
||||
"Island computation: {:.2}ms",
|
||||
counters.island_construction_time_ms()
|
||||
));
|
||||
ui.label(format!(
|
||||
"Active constraints collection: {:.2}ms",
|
||||
counters.stages.island_constraints_collection_time.time_ms()
|
||||
));
|
||||
ui.label(format!("Mprops update: {:.2}ms", counters.update_time_ms()));
|
||||
ui.label(format!(
|
||||
"User changes: {:.2}ms",
|
||||
counters.stages.user_changes.time_ms()
|
||||
));
|
||||
ui.label(format!("Debug timer: {:.2}ms", counters.custom.time_ms()));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user