diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-10-17 17:06:28 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-10-17 17:06:28 +0300 |
commit | 5037efdea9bd3fc86c1df5200e71741c98627b00 (patch) | |
tree | 3bba65ee424ac6868a44dbfe30a5d9143a1fa5cf | |
parent | e9888c8e2525e9f3d476a96d42662f521f780c27 (diff) | |
download | minetest-5037efdea9bd3fc86c1df5200e71741c98627b00.tar.gz minetest-5037efdea9bd3fc86c1df5200e71741c98627b00.tar.bz2 minetest-5037efdea9bd3fc86c1df5200e71741c98627b00.zip |
Add some rendering statistics to profiler
-rw-r--r-- | src/game.cpp | 1 | ||||
-rw-r--r-- | src/map.cpp | 14 |
2 files changed, 15 insertions, 0 deletions
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; i<c; i++) { @@ -3939,6 +3942,17 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } } + if(pass == scene::ESNRP_SOLID){ + g_profiler->avg("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; |