From dafc612b680a42555195b642c84a053c91f3e2a0 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Tue, 10 Dec 2024 23:05:57 +0100 Subject: [PATCH] Add measurement of how long DoomLevelMesh::BeginFrame took --- src/rendering/hwrenderer/doom_levelmesh.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/rendering/hwrenderer/doom_levelmesh.cpp b/src/rendering/hwrenderer/doom_levelmesh.cpp index 8161d33bd..356101056 100644 --- a/src/rendering/hwrenderer/doom_levelmesh.cpp +++ b/src/rendering/hwrenderer/doom_levelmesh.cpp @@ -54,6 +54,8 @@ static int InvalidateLightmap() return count; } +glcycle_t ProcessLevelMesh; + ADD_STAT(lightmap) { FString out; @@ -68,12 +70,18 @@ ADD_STAT(lightmap) uint32_t atlasPixelCount = levelMesh->AtlasPixelCount(); auto stats = levelMesh->GatherTilePixelStats(); - out.Format("Surfaces: %u (awaiting updates: %u)\nSurface pixel area to update: %u\nSurface pixel area: %u\nAtlas pixel area: %u\nAtlas efficiency: %.4f%%", + out.Format( + "Surfaces: %u (awaiting updates: %u)\n" + "Surface pixel area to update: %u\n" + "Surface pixel area: %u\nAtlas pixel area: %u\n" + "Atlas efficiency: %.4f%%\n" + "Level mesh process time: %2.3f ms", stats.tiles.total, stats.tiles.dirty, stats.pixels.dirty, stats.pixels.total, atlasPixelCount, - float(stats.pixels.total) / float(atlasPixelCount) * 100.0f ); + float(stats.pixels.total) / float(atlasPixelCount) * 100.0f, + ProcessLevelMesh.TimeMS()); return out; } @@ -263,6 +271,8 @@ void DoomLevelMesh::BeginFrame(FLevelLocals& doomMap) LastFrameStats = CurFrameStats; CurFrameStats = Stats(); + ProcessLevelMesh.ResetAndClock(); + // HWWall and HWFlat still looks at r_viewpoint when doing calculations, // but we aren't rendering a specific viewpoint when this function gets called int oldextralight = r_viewpoint.extralight; @@ -313,6 +323,8 @@ void DoomLevelMesh::BeginFrame(FLevelLocals& doomMap) r_viewpoint.extralight = oldextralight; r_viewpoint.camera = oldcamera; + + ProcessLevelMesh.Unclock(); } void DoomLevelMesh::UploadDynLights(FLevelLocals& doomMap)