diff --git a/client/src/lib.rs b/client/src/lib.rs index 4a672a6e87..231a2b6e36 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -32,6 +32,7 @@ use common::{ }, outcome::Outcome, recipe::RecipeBook, + span, state::State, sync::{Uid, UidAllocator, WorldSyncExt}, terrain::{block::Block, neighbors, BiomeKind, SitesKind, TerrainChunk, TerrainChunkSize}, @@ -935,6 +936,7 @@ impl Client { dt: Duration, add_foreign_systems: impl Fn(&mut DispatcherBuilder), ) -> Result, Error> { + span!(_guard, "tick", "Client::tick"); // This tick function is the centre of the Veloren universe. Most client-side // things are managed from here, and as such it's important that it // stays organised. Please consult the core developers before making diff --git a/common/src/state.rs b/common/src/state.rs index aeb90bca02..3964f3c87f 100644 --- a/common/src/state.rs +++ b/common/src/state.rs @@ -3,6 +3,7 @@ use crate::{ event::{EventBus, LocalEvent, ServerEvent}, metrics::{PhysicsMetrics, SysMetrics}, region::RegionMap, + span, sync::WorldSyncExt, sys, terrain::{Block, TerrainChunk, TerrainGrid}, @@ -329,6 +330,7 @@ impl State { // Run RegionMap tick to update entity region occupancy pub fn update_region_map(&self) { + span!(_guard, "update_region_map", "State::update_region_map"); self.ecs.write_resource::().tick( self.ecs.read_storage::(), self.ecs.read_storage::(), @@ -338,6 +340,11 @@ impl State { // Apply terrain changes pub fn apply_terrain_changes(&self) { + span!( + _guard, + "apply_terrain_changes", + "State::apply_terrain_changes" + ); let mut terrain = self.ecs.write_resource::(); let mut modified_blocks = std::mem::take(&mut self.ecs.write_resource::().blocks); @@ -354,6 +361,7 @@ impl State { add_foreign_systems: impl Fn(&mut DispatcherBuilder), update_terrain_and_regions: bool, ) { + span!(_guard, "tick", "State::tick"); // Change the time accordingly. self.ecs.write_resource::().0 += dt.as_secs_f64() * DAY_CYCLE_FACTOR; self.ecs.write_resource::