diff options
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.cpp')
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 249d83f50627..a496b4966456 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -348,12 +348,26 @@ void CanvasContext::draw() { FrameBuilder frameBuilder(mLayerUpdateQueue, dirty, frame.width(), frame.height(), mRenderNodes, mLightGeometry, mContentDrawBounds, &Caches::getInstance()); mLayerUpdateQueue.clear(); - BakedOpRenderer renderer(Caches::getInstance(), mRenderThread.renderState(), + auto&& caches = Caches::getInstance(); + BakedOpRenderer renderer(caches, mRenderThread.renderState(), mOpaque, mLightInfo); - // TODO: profiler().draw(mCanvas); frameBuilder.replayBakedOps<BakedOpDispatcher>(renderer); + profiler().draw(&renderer); bool drew = renderer.didDraw(); + // post frame cleanup + caches.clearGarbage(); + caches.pathCache.trim(); + caches.tessellationCache.trim(); + +#if DEBUG_MEMORY_USAGE + mCaches.dumpMemoryUsage(); +#else + if (CC_UNLIKELY(Properties::debugLevel & kDebugMemory)) { + caches.dumpMemoryUsage(); + } +#endif + #else mCanvas->prepareDirty(frame.width(), frame.height(), dirty.fLeft, dirty.fTop, dirty.fRight, dirty.fBottom, mOpaque); |