Added more timers to Rendering.

This commit is contained in:
verysecrethero
2016-02-16 17:51:39 +01:00
parent 4b8f1d95a3
commit 42b49f9dba
3 changed files with 24 additions and 4 deletions
+1
View File
@@ -23,6 +23,7 @@
#include "imgui/imgui.h" #include "imgui/imgui.h"
#include "TextPass.h" #include "TextPass.h"
#include "Util/CommonFunctions.h" #include "Util/CommonFunctions.h"
#include "Core/PerformanceTimer.h"
class Renderer : public IRenderer class Renderer : public IRenderer
{ {
+5 -3
View File
@@ -144,7 +144,7 @@
</Team> </Team>
</c:Team> </c:Team>
<c:Transform> <c:Transform>
<Position X="57.7363472" Y="2.38900018" Z="79.5"/> <Position X="57.7363472" Y="4.98900032" Z="79.5"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -206,14 +206,16 @@
</Team> </Team>
</c:Team> </c:Team>
<c:Transform> <c:Transform>
<Position X="-60.2567062" Y="3.4000001" Z="-78.1000061"/> <Position X="-60.2567062" Y="9.40000057" Z="-78.1000061"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
<Entity> <Entity>
<Components> <Components>
<c:SpawnPoint/> <c:SpawnPoint/>
<c:Transform/> <c:Transform>
<Position X="0" Y="2.10000014" Z="0"/>
</c:Transform>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
+18 -1
View File
@@ -99,34 +99,48 @@ void Renderer::Draw(RenderFrame& frame)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//Clear other buffers //Clear other buffers
PerformanceTimer::StartTimer("Renderer-ClearBuffers");
m_PickingPass->ClearPicking(); m_PickingPass->ClearPicking();
m_DrawFinalPass->ClearBuffer(); m_DrawFinalPass->ClearBuffer();
m_DrawBloomPass->ClearBuffer(); m_DrawBloomPass->ClearBuffer();
PerformanceTimer::StopTimer("Renderer-ClearBuffers");
for (auto scene : frame.RenderScenes){ for (auto scene : frame.RenderScenes){
PerformanceTimer::StartTimer("Renderer-Depth");
SortRenderJobsByDepth(*scene); SortRenderJobsByDepth(*scene);
GLERROR("SortByDepth"); GLERROR("SortByDepth");
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Drawing PickingPass");
m_PickingPass->Draw(*scene); m_PickingPass->Draw(*scene);
GLERROR("Drawing pickingpass"); GLERROR("Drawing pickingpass");
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Generate Frustrums");
m_LightCullingPass->GenerateNewFrustum(*scene); m_LightCullingPass->GenerateNewFrustum(*scene);
GLERROR("Generate frustums"); GLERROR("Generate frustums");
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Filling Light List");
m_LightCullingPass->FillLightList(*scene); m_LightCullingPass->FillLightList(*scene);
GLERROR("Filling light list"); GLERROR("Filling light list");
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Light Culling");
m_LightCullingPass->CullLights(*scene); m_LightCullingPass->CullLights(*scene);
GLERROR("LightCulling"); GLERROR("LightCulling");
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Draw Geometry+Light");
m_DrawFinalPass->Draw(*scene); m_DrawFinalPass->Draw(*scene);
GLERROR("Draw Geometry+Light"); GLERROR("Draw Geometry+Light");
//m_DrawScenePass->Draw(*scene); //m_DrawScenePass->Draw(*scene);
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Draw Text");
m_TextPass->Draw(*scene, *m_DrawFinalPass->FinalPassFrameBuffer()); m_TextPass->Draw(*scene, *m_DrawFinalPass->FinalPassFrameBuffer());
GLERROR("Draw Text"); GLERROR("Draw Text");
PerformanceTimer::StopTimer("Renderer-Draw Text");
} }
PerformanceTimer::StartTimer("Renderer-Draw Bloom");
m_DrawBloomPass->Draw(m_DrawFinalPass->BloomTexture()); m_DrawBloomPass->Draw(m_DrawFinalPass->BloomTexture());
PerformanceTimer::StopTimer("Renderer-Draw Bloom");
if (m_DebugTextureToDraw == 0) { if (m_DebugTextureToDraw == 0) {
PerformanceTimer::StartTimer("Renderer-Color Correction Pass");
m_DrawColorCorrectionPass->Draw(m_DrawFinalPass->SceneTexture(), m_DrawBloomPass->GaussianTexture(), m_DrawFinalPass->SceneTextureLowRes(), m_DrawFinalPass->BloomTextureLowRes(), frame.Gamma, frame.Exposure); m_DrawColorCorrectionPass->Draw(m_DrawFinalPass->SceneTexture(), m_DrawBloomPass->GaussianTexture(), m_DrawFinalPass->SceneTextureLowRes(), m_DrawFinalPass->BloomTextureLowRes(), frame.Gamma, frame.Exposure);
PerformanceTimer::StopTimer("Renderer-Color Correction Pass");
} }
PerformanceTimer::StartTimer("Renderer-Misc Debug Draws");
if (m_DebugTextureToDraw == 1) { if (m_DebugTextureToDraw == 1) {
m_DrawScreenQuadPass->Draw(m_DrawFinalPass->SceneTexture()); m_DrawScreenQuadPass->Draw(m_DrawFinalPass->SceneTexture());
} }
@@ -145,10 +159,13 @@ void Renderer::Draw(RenderFrame& frame)
if (m_DebugTextureToDraw == 6) { if (m_DebugTextureToDraw == 6) {
m_DrawScreenQuadPass->Draw(m_PickingPass->PickingTexture()); m_DrawScreenQuadPass->Draw(m_PickingPass->PickingTexture());
} }
PerformanceTimer::StopTimer("Renderer-Misc Debug Draws");
PerformanceTimer::StartTimer("Renderer-ImGuiRenderPass");
m_ImGuiRenderPass->Draw(); m_ImGuiRenderPass->Draw();
GLERROR("Imgui draw"); GLERROR("Imgui draw");
glfwSwapBuffers(m_Window); glfwSwapBuffers(m_Window);
PerformanceTimer::StopTimer("Renderer-ImGuiRenderPass");
} }
PickData Renderer::Pick(glm::vec2 screenCoord) PickData Renderer::Pick(glm::vec2 screenCoord)