From dbe7fd6ef074e3ce43cdd30ef357d73f279ffd5c Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 24 Jul 2016 18:19:37 +0200 Subject: [PATCH] Added performance counter for UI particles --- src/common/profiler.h | 3 ++- src/graphics/engine/engine.cpp | 14 +++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/common/profiler.h b/src/common/profiler.h index 9e222079..d0d373ab 100644 --- a/src/common/profiler.h +++ b/src/common/profiler.h @@ -39,7 +39,8 @@ enum PerformanceCounter PCNT_UPDATE_CBOT, //! < running CBot code (part of CRobotMain update) PCNT_RENDER_ALL, //! < the whole rendering process - PCNT_RENDER_PARTICLE, //! < rendering the particles in 3D + PCNT_RENDER_PARTICLE_WORLD, //! < rendering the particles in 3D + PCNT_RENDER_PARTICLE_IFACE, //! < rendering the particles in 2D interface PCNT_RENDER_WATER, //! < rendering the water PCNT_RENDER_TERRAIN, //! < rendering the terrain PCNT_RENDER_OBJECTS, //! < rendering the 3D objects diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index bbda7dcb..7e5d4a80 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -3481,9 +3481,9 @@ void CEngine::Draw3DScene() } m_displayGoto.clear(); - CProfiler::StartPerformanceCounter(PCNT_RENDER_PARTICLE); + CProfiler::StartPerformanceCounter(PCNT_RENDER_PARTICLE_WORLD); m_particle->DrawParticle(SH_WORLD); // draws the particles of the 3D world - CProfiler::StopPerformanceCounter(PCNT_RENDER_PARTICLE); + CProfiler::StopPerformanceCounter(PCNT_RENDER_PARTICLE_WORLD); m_device->SetRenderState(RENDER_STATE_LIGHTING, true); @@ -4034,7 +4034,9 @@ void CEngine::DrawInterface() if (!m_screenshotMode && m_renderInterface) { + CProfiler::StartPerformanceCounter(PCNT_RENDER_PARTICLE_IFACE); m_particle->DrawParticle(SH_INTERFACE); // draws the particles of the interface + CProfiler::StopPerformanceCounter(PCNT_RENDER_PARTICLE_IFACE); } // 3D objects drawn in front of interface @@ -5033,7 +5035,7 @@ void CEngine::DrawStats() float height = m_text->GetAscent(FONT_COLOBOT, 13.0f); float width = 0.4f; - const int TOTAL_LINES = 21; + const int TOTAL_LINES = 22; Math::Point pos(0.05f * m_size.x/m_size.y, 0.05f + TOTAL_LINES * height); @@ -5080,6 +5082,7 @@ void CEngine::DrawStats() drawStatsValue(name, CProfiler::GetPerformanceCounterTime(counter)); }; + // TODO: Find a more generic way to calculate these in CProfiler long long engineUpdate = CProfiler::GetPerformanceCounterTime(PCNT_UPDATE_ENGINE) - CProfiler::GetPerformanceCounterTime(PCNT_UPDATE_PARTICLE); @@ -5092,7 +5095,7 @@ void CEngine::DrawStats() CProfiler::GetPerformanceCounterTime(PCNT_UPDATE_GAME); long long otherRender = CProfiler::GetPerformanceCounterTime(PCNT_RENDER_ALL) - - CProfiler::GetPerformanceCounterTime(PCNT_RENDER_PARTICLE) - + CProfiler::GetPerformanceCounterTime(PCNT_RENDER_PARTICLE_WORLD) - CProfiler::GetPerformanceCounterTime(PCNT_RENDER_WATER) - CProfiler::GetPerformanceCounterTime(PCNT_RENDER_TERRAIN) - CProfiler::GetPerformanceCounterTime(PCNT_RENDER_OBJECTS) - @@ -5109,11 +5112,12 @@ void CEngine::DrawStats() drawStatsValue( " Other update", otherUpdate); drawStatsLine( ""); drawStatsCounter("Frame render", PCNT_RENDER_ALL); - drawStatsCounter(" Particle render", PCNT_RENDER_PARTICLE); + drawStatsCounter(" Particle render", PCNT_RENDER_PARTICLE_WORLD); drawStatsCounter(" Water render", PCNT_RENDER_WATER); drawStatsCounter(" Terrain render", PCNT_RENDER_TERRAIN); drawStatsCounter(" Objects render", PCNT_RENDER_OBJECTS); drawStatsCounter(" UI render", PCNT_RENDER_INTERFACE); + drawStatsCounter(" particles", PCNT_RENDER_PARTICLE_IFACE); drawStatsCounter(" Shadow map render", PCNT_RENDER_SHADOW_MAP); drawStatsValue( " Other render", otherRender); drawStatsCounter("Swap buffers & VSync", PCNT_SWAP_BUFFERS);