test: log retained underlay debug counters
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
tei
2026-09-21 23:18:06 +09:00
parent c58d370e71
commit e7d109246a

View File

@@ -20,6 +20,10 @@
#include <mbgl/util/logging.hpp> #include <mbgl/util/logging.hpp>
#include <mbgl/util/instrumentation.hpp> #include <mbgl/util/instrumentation.hpp>
#ifndef NDEBUG
#include <sstream>
#endif
#include <mbgl/gfx/drawable_tweaker.hpp> #include <mbgl/gfx/drawable_tweaker.hpp>
#include <mbgl/renderer/layer_tweaker.hpp> #include <mbgl/renderer/layer_tweaker.hpp>
#include <mbgl/renderer/render_target.hpp> #include <mbgl/renderer/render_target.hpp>
@@ -51,6 +55,30 @@ RendererObserver& nullObserver() {
return observer; return observer;
} }
#ifndef NDEBUG
constexpr uint64_t RetainedCounterLogIntervalFrames = 120;
void logRetainedRendererCounters() {
const auto snapshot = particle::rendererDebugCounterSnapshot();
if (snapshot.fullRendererFrame == 0 ||
snapshot.fullRendererFrame % RetainedCounterLogIntervalFrames != 0) {
return;
}
std::ostringstream message;
message << "ParticleRetained:"
<< " frame=" << snapshot.fullRendererFrame
<< " build=" << snapshot.retainedUnderlayBuild
<< " reuse=" << snapshot.retainedUnderlayReuse
<< " fallback=" << snapshot.retainedUnderlayFallback
<< " invalidation=" << snapshot.retainedUnderlayInvalidation
<< " staticDraw=" << snapshot.retainedUnderlayStaticGroupDraw
<< " dynamicDraw=" << snapshot.retainedDynamicGroupDraw
<< " particleAdvance=" << snapshot.particleSimulationAdvance;
Log::Info(Event::Render, message.str());
}
#endif
} // namespace } // namespace
Renderer::Impl::Impl(gfx::RendererBackend& backend_, Renderer::Impl::Impl(gfx::RendererBackend& backend_,
@@ -590,6 +618,10 @@ void Renderer::Impl::render(const RenderTree& renderTree, const std::shared_ptr<
observer->onDidFinishRenderingMap(); observer->onDidFinishRenderingMap();
} }
#ifndef NDEBUG
logRetainedRendererCounters();
#endif
frameCount += 1; frameCount += 1;
MLN_END_FRAME(); MLN_END_FRAME();
} }