From 5037efdea9bd3fc86c1df5200e71741c98627b00 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 17 Oct 2011 17:06:28 +0300 Subject: [PATCH] Add some rendering statistics to profiler --- src/game.cpp | 1 + src/map.cpp | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/game.cpp b/src/game.cpp index e666e084d..78962c18c 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1071,6 +1071,7 @@ void the_game( object_hit_delay_timer -= dtime; g_profiler->add("Elapsed time", dtime); + g_profiler->avg("FPS", 1./dtime); /* Log frametime for visualization diff --git a/src/map.cpp b/src/map.cpp index 63c6ad57c..943d9772a 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -34,6 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #endif #include "settings.h" #include "log.h" +#include "profiler.h" #define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")" @@ -3760,6 +3761,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) p_nodes_max.Z / MAP_BLOCKSIZE + 1); u32 vertex_count = 0; + u32 meshbuffer_count = 0; // For limiting number of mesh updates per frame u32 mesh_update_count = 0; @@ -3909,6 +3911,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) sector_blocks_drawn++; u32 c = mesh->getMeshBufferCount(); + meshbuffer_count += c; for(u32 i=0; iavg("CM: blocks drawn on solid pass", blocks_drawn); + g_profiler->avg("CM: vertices drawn on solid pass", vertex_count); + if(blocks_drawn != 0) + g_profiler->avg("CM: solid meshbuffers per block", + (float)meshbuffer_count / (float)blocks_drawn); + } else { + g_profiler->avg("CM: blocks drawn on transparent pass", blocks_drawn); + g_profiler->avg("CM: vertices drawn on transparent pass", vertex_count); + } + m_control.blocks_drawn = blocks_drawn; m_control.blocks_would_have_drawn = blocks_would_have_drawn;