From 0111a2f91caffc2d2b7d57c2d919c4d70f42db7f Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 26 Feb 2024 17:37:12 +0100 Subject: display timing info in region generator --- src/chunk-region.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/chunk-region.cpp') diff --git a/src/chunk-region.cpp b/src/chunk-region.cpp index c0afe9f0..fb85223b 100644 --- a/src/chunk-region.cpp +++ b/src/chunk-region.cpp @@ -8,6 +8,7 @@ #include #include #include +#include namespace floormat { @@ -128,13 +129,17 @@ auto default_region_predicate(chunk& c) noexcept } // namespace -auto chunk::make_pass_region() -> pass_region +auto chunk::make_pass_region(bool debug) -> pass_region { - return make_pass_region(default_region_predicate(*this)); + return make_pass_region(default_region_predicate(*this), debug); } -auto chunk::make_pass_region(const pred& f) -> pass_region +auto chunk::make_pass_region(const pred& f, bool debug) -> pass_region { + Timeline timeline; + if (debug) [[unlikely]] + timeline.start(); + pass_region ret; auto& tmp = get_tmp(); const auto nbs = _world->neighbors(_coord); @@ -175,6 +180,19 @@ auto chunk::make_pass_region(const pred& f) -> pass_region } } + if (debug) [[unlikely]] + { + const auto time = timeline.currentFrameTime(); + char buf[32]; + std::snprintf(buf, sizeof buf, "%.3f", 1e3*(double)time); + auto c = Vector3i(_coord); + auto dbg = DBG_nospace; + dbg << "region: generating for chunk{" << c.x() << "," << c.y(); + if (c.z() != 0) + dbg << "," << c.z(); + dbg << "} took " << buf << " ms"; + } + return ret; } -- cgit v1.2.3