From 24b8124469350d1c80d0553cf3f4bf58cdb1489b Mon Sep 17 00:00:00 2001 From: Mel Date: Sat, 1 Jul 2023 22:06:37 +0200 Subject: Add chunk generation time statistics --- src/World/World.hpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/World/World.hpp') diff --git a/src/World/World.hpp b/src/World/World.hpp index 03ed517..e6b3cd2 100644 --- a/src/World/World.hpp +++ b/src/World/World.hpp @@ -31,23 +31,38 @@ public: std::vector get_visible_chunks(Vector<3> position); Chunk* get_chunk_for_position(Vector<3> position); + + float get_average_chunk_time(); private: std::unordered_set get_visible_chunk_indices(Vector<3> position) const; std::unordered_set load_finished_chunks_from_queue(); void process_chunk_visibility_updates(std::unordered_set& new_chunks, Vector<3> player); void request_generation(ChunkIndex index, float priority); + void try_to_create_mesh_for_chunk(ChunkData& data); + + void log_chunk_time(uint64_t chunk_time_ms); ChunkData& get(ChunkIndex index); + static uint64_t timestamp(); + uint8_t m_view_distance_radius = 13; - Compute::Queue m_queue; + struct GenerationResult { + Chunk chunk; + uint64_t generation_duration; + }; + Compute::Queue m_queue; Generator m_generator; std::unordered_map m_chunks; std::unordered_set m_visible_chunks; - void try_to_create_mesh_for_chunk(ChunkData& data); + struct Statistics { + uint chunk_time_sample_count; + float average_chunk_time_ms; + }; + Statistics m_statistics{0, 0.0f}; }; } -- cgit 1.4.1