forked from Mirrorlandia_minetest/minetest
Add some rendering statistics to profiler
This commit is contained in:
parent
e9888c8e25
commit
5037efdea9
@ -1071,6 +1071,7 @@ void the_game(
|
|||||||
object_hit_delay_timer -= dtime;
|
object_hit_delay_timer -= dtime;
|
||||||
|
|
||||||
g_profiler->add("Elapsed time", dtime);
|
g_profiler->add("Elapsed time", dtime);
|
||||||
|
g_profiler->avg("FPS", 1./dtime);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Log frametime for visualization
|
Log frametime for visualization
|
||||||
|
14
src/map.cpp
14
src/map.cpp
@ -34,6 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#endif
|
#endif
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
#include "profiler.h"
|
||||||
|
|
||||||
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
|
#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);
|
p_nodes_max.Z / MAP_BLOCKSIZE + 1);
|
||||||
|
|
||||||
u32 vertex_count = 0;
|
u32 vertex_count = 0;
|
||||||
|
u32 meshbuffer_count = 0;
|
||||||
|
|
||||||
// For limiting number of mesh updates per frame
|
// For limiting number of mesh updates per frame
|
||||||
u32 mesh_update_count = 0;
|
u32 mesh_update_count = 0;
|
||||||
@ -3909,6 +3911,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
|
|||||||
sector_blocks_drawn++;
|
sector_blocks_drawn++;
|
||||||
|
|
||||||
u32 c = mesh->getMeshBufferCount();
|
u32 c = mesh->getMeshBufferCount();
|
||||||
|
meshbuffer_count += c;
|
||||||
|
|
||||||
for(u32 i=0; i<c; i++)
|
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_drawn = blocks_drawn;
|
||||||
m_control.blocks_would_have_drawn = blocks_would_have_drawn;
|
m_control.blocks_would_have_drawn = blocks_would_have_drawn;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user