Add profiler counter for rsm

This commit is contained in:
Vincent Lejeune 2014-09-03 22:52:16 +02:00
parent 6f9820b82b
commit b3b6b05765
4 changed files with 12 additions and 3 deletions

View File

@ -112,6 +112,7 @@ enum QueryPerf
{ {
Q_SOLID_PASS1, Q_SOLID_PASS1,
Q_SHADOWS, Q_SHADOWS,
Q_RSM,
Q_RH, Q_RH,
Q_GI, Q_GI,
Q_ENVMAP, Q_ENVMAP,

View File

@ -300,19 +300,23 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
PROFILER_POP_CPU_MARKER(); PROFILER_POP_CPU_MARKER();
// Shadows // Shadows
{ {
PROFILER_PUSH_CPU_MARKER("- Shadow", 0x30, 0x6F, 0x90);
ScopedGPUTimer Timer(getGPUTimer(Q_SHADOWS));
// To avoid wrong culling, use the largest view possible // To avoid wrong culling, use the largest view possible
m_scene_manager->setActiveCamera(m_suncam); m_scene_manager->setActiveCamera(m_suncam);
if (!m_mipviz && !m_wireframe && UserConfigParams::m_dynamic_lights && if (!m_mipviz && !m_wireframe && UserConfigParams::m_dynamic_lights &&
UserConfigParams::m_shadows && !irr_driver->needUBOWorkaround() && hasShadow) UserConfigParams::m_shadows && !irr_driver->needUBOWorkaround() && hasShadow)
{ {
PROFILER_PUSH_CPU_MARKER("- Shadow", 0x30, 0x6F, 0x90);
renderShadows(); renderShadows();
PROFILER_POP_CPU_MARKER();
if (UserConfigParams::m_gi) if (UserConfigParams::m_gi)
{
PROFILER_PUSH_CPU_MARKER("- RSM", 0xFF, 0x0, 0xFF);
renderRSM(); renderRSM();
PROFILER_POP_CPU_MARKER();
}
} }
m_scene_manager->setActiveCamera(camnode); m_scene_manager->setActiveCamera(camnode);
PROFILER_POP_CPU_MARKER();
} }
PROFILER_PUSH_CPU_MARKER("- Solid Pass 1", 0xFF, 0x00, 0x00); PROFILER_PUSH_CPU_MARKER("- Solid Pass 1", 0xFF, 0x00, 0x00);

View File

@ -791,6 +791,8 @@ static void multidrawShadow(unsigned i, Args ...args)
void IrrDriver::renderShadows() void IrrDriver::renderShadows()
{ {
ScopedGPUTimer Timer(getGPUTimer(Q_SHADOWS));
glDepthFunc(GL_LEQUAL); glDepthFunc(GL_LEQUAL);
glDepthMask(GL_TRUE); glDepthMask(GL_TRUE);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
@ -929,6 +931,7 @@ void multidrawRSM(Args...args)
void IrrDriver::renderRSM() void IrrDriver::renderRSM()
{ {
ScopedGPUTimer Timer(getGPUTimer(Q_RSM));
m_rtts->getRSM().Bind(); m_rtts->getRSM().Bind();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

View File

@ -33,6 +33,7 @@ static const char* GPU_Phase[Q_LAST] =
{ {
"Solid Pass 1", "Solid Pass 1",
"Shadows", "Shadows",
"RSM",
"RH", "RH",
"GI", "GI",
"Env Map", "Env Map",