diff options
author | John Reck <jreck@google.com> | 2014-10-31 14:49:06 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-10-31 15:30:10 -0700 |
commit | 0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2 (patch) | |
tree | 8fcd1f768f08fbeb2cd13425a2bf15b7670428f2 /libs/hwui/RenderNode.cpp | |
parent | 141823ec6313d9545b8354ea1e3e017a1da3cfa8 (diff) | |
download | frameworks_base-0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2.zip frameworks_base-0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2.tar.gz frameworks_base-0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2.tar.bz2 |
Layer changes
Bug: 17208461
* Switch Layer to be VirtualLightRefBase instead of
Caches' side-channel ref-counting
* Include active layers in gfxinfo dump
* Run gfxinfo dump on the correct thread
* Dump gfxinfo on Layer creation failure
Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r-- | libs/hwui/RenderNode.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index 40cd13e..c9ed9a7 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -87,7 +87,11 @@ RenderNode::RenderNode() RenderNode::~RenderNode() { deleteDisplayListData(); delete mStagingDisplayListData; - LayerRenderer::destroyLayerDeferred(mLayer); + if (mLayer) { + ALOGW("Memory Warning: Layer %p missed its detachment, held on to for far too long!", mLayer); + mLayer->postDecStrong(); + mLayer = 0; + } } void RenderNode::setStagingDisplayList(DisplayListData* data) { @@ -201,6 +205,7 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) { info.damageAccumulator->peekAtDirty(&dirty); if (!mLayer) { + Caches::getInstance().dumpMemoryUsage(); if (info.errorHandler) { std::string msg = "Unable to create layer for "; msg += getName(); |