From 8a0596893b50350692b31f619cca780bb83de594 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 29 Oct 2018 10:36:48 +0100 Subject: [PATCH] - fixed dynamic light profiling counters. The draw counters were never incremented and this should be reset only once per scene, not once per viewpoint. --- src/gl/renderer/gl_renderer.cpp | 2 ++ src/gl/scene/gl_scene.cpp | 1 - src/hwrenderer/scene/hw_flats.cpp | 2 +- src/hwrenderer/scene/hw_renderhacks.cpp | 2 +- src/hwrenderer/scene/hw_walls.cpp | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gl/renderer/gl_renderer.cpp b/src/gl/renderer/gl_renderer.cpp index f4ae483c8e..493aa6c8b9 100644 --- a/src/gl/renderer/gl_renderer.cpp +++ b/src/gl/renderer/gl_renderer.cpp @@ -229,6 +229,8 @@ sector_t *FGLRenderer::RenderView(player_t* player) } else { + iter_dlightf = iter_dlight = draw_dlight = draw_dlightf = 0; + checkBenchActive(); // reset statistics counters diff --git a/src/gl/scene/gl_scene.cpp b/src/gl/scene/gl_scene.cpp index efc9f0a3b4..607d2e8361 100644 --- a/src/gl/scene/gl_scene.cpp +++ b/src/gl/scene/gl_scene.cpp @@ -148,7 +148,6 @@ void FDrawInfo::DrawScene(int drawmode) void FDrawInfo::ProcessScene(bool toscreen) { - iter_dlightf = iter_dlight = draw_dlight = draw_dlightf = 0; screen->mPortalState->BeginScene(); int mapsection = R_PointInSubsector(Viewpoint.Pos)->mapsection; diff --git a/src/hwrenderer/scene/hw_flats.cpp b/src/hwrenderer/scene/hw_flats.cpp index 40e922485d..3609add577 100644 --- a/src/hwrenderer/scene/hw_flats.cpp +++ b/src/hwrenderer/scene/hw_flats.cpp @@ -167,7 +167,7 @@ void GLFlat::SetupLights(HWDrawInfo *di, FLightNode * node, FDynLightData &light } p.Set(plane.plane.Normal(), plane.plane.fD()); - lightdata.GetLight(portalgroup, p, light, false); + draw_dlightf += lightdata.GetLight(portalgroup, p, light, false); node = node->nextLight; } diff --git a/src/hwrenderer/scene/hw_renderhacks.cpp b/src/hwrenderer/scene/hw_renderhacks.cpp index 9610d3da74..f6899b4341 100644 --- a/src/hwrenderer/scene/hw_renderhacks.cpp +++ b/src/hwrenderer/scene/hw_renderhacks.cpp @@ -69,7 +69,7 @@ int HWDrawInfo::SetupLightsForOtherPlane(subsector_t * sub, FDynLightData &light iter_dlightf++; p.Set(plane->Normal(), plane->fD()); - lightdata.GetLight(sub->sector->PortalGroup, p, light, true); + draw_dlightf += lightdata.GetLight(sub->sector->PortalGroup, p, light, true); node = node->nextLight; } diff --git a/src/hwrenderer/scene/hw_walls.cpp b/src/hwrenderer/scene/hw_walls.cpp index 31ccd9c256..4910b56b61 100644 --- a/src/hwrenderer/scene/hw_walls.cpp +++ b/src/hwrenderer/scene/hw_walls.cpp @@ -354,7 +354,7 @@ void GLWall::SetupLights(HWDrawInfo *di, FDynLightData &lightdata) } if (outcnt[0]!=4 && outcnt[1]!=4 && outcnt[2]!=4 && outcnt[3]!=4) { - lightdata.GetLight(seg->frontsector->PortalGroup, p, node->lightsource, true); + draw_dlight += lightdata.GetLight(seg->frontsector->PortalGroup, p, node->lightsource, true); } } }