From: Perttu Ahola Date: Mon, 17 Oct 2011 14:06:28 +0000 (+0300) Subject: Add some rendering statistics to profiler X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=5037efdea9bd3fc86c1df5200e71741c98627b00;p=zefram%2Fminetest%2Fminetest_engine.git Add some rendering statistics to profiler --- diff --git a/src/game.cpp b/src/game.cpp index e666e084..78962c18 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 63c6ad57..943d9772 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;