summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderState.cpp
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2014-09-10 13:04:31 -0700
committer Chris Craik <ccraik@google.com> 2014-09-10 16:10:24 -0700
commitbfd1cd620991ac2fa9202fdce6c00ec47d071935 (patch)
treecc0460e5066d0a765610fb5eb4a3e30ef9bc28a5 /libs/hwui/RenderState.cpp
parentfc81bfe3fb43296ca7040b8f259e1cbec50898ca (diff)
Additional layer logging
bug:17208461 Track layer's last known state. Change-Id: Ic1799191f5839a1d6cc56f598f2ac2671dc27a6f
Diffstat (limited to 'libs/hwui/RenderState.cpp')
-rw-r--r--libs/hwui/RenderState.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/libs/hwui/RenderState.cpp b/libs/hwui/RenderState.cpp
index ec8307f28d5b..54af52802fec 100644
--- a/libs/hwui/RenderState.cpp
+++ b/libs/hwui/RenderState.cpp
@@ -39,13 +39,16 @@ void RenderState::onGLContextCreated() {
void RenderState::onGLContextDestroyed() {
AutoMutex _lock(mLayerLock);
- if (CC_UNLIKELY(!mActiveLayers.empty())) {
+ size_t size = mActiveLayers.size();
+ if (CC_UNLIKELY(size != 0)) {
+ ALOGE("Crashing, have %d contexts and %d layers at context destruction. isempty %d",
+ mRegisteredContexts.size(), size, mActiveLayers.empty());
mCaches->dumpMemoryUsage();
for (std::set<renderthread::CanvasContext*>::iterator cit = mRegisteredContexts.begin();
cit != mRegisteredContexts.end(); cit++) {
renderthread::CanvasContext* context = *cit;
- ALOGD("Context: %p (root = %p)", context, context->mRootRenderNode.get());
- ALOGD(" Prefeteched layers: %zu", context->mPrefetechedLayers.size());
+ ALOGE("Context: %p (root = %p)", context, context->mRootRenderNode.get());
+ ALOGE(" Prefeteched layers: %zu", context->mPrefetechedLayers.size());
for (std::set<RenderNode*>::iterator pit = context->mPrefetechedLayers.begin();
pit != context->mPrefetechedLayers.end(); pit++) {
(*pit)->debugDumpLayers(" ");
@@ -53,13 +56,17 @@ void RenderState::onGLContextDestroyed() {
context->mRootRenderNode->debugDumpLayers(" ");
}
+
+ if (mActiveLayers.begin() == mActiveLayers.end()) {
+ ALOGE("set has become empty. wat.");
+ }
for (std::set<const Layer*>::iterator lit = mActiveLayers.begin();
lit != mActiveLayers.end(); lit++) {
const Layer* layer = *(lit);
- ALOGD("Layer %p, fbo %d, buildlayered %d",
- layer, layer->getFbo(), layer->wasBuildLayered);
+ ALOGE("Layer %p, state %d, texlayer %d, fbo %d, buildlayered %d",
+ layer, layer->state, layer->isTextureLayer(), layer->getFbo(), layer->wasBuildLayered);
}
- LOG_ALWAYS_FATAL("layers have survived gl context destruction");
+ LOG_ALWAYS_FATAL("%d layers have survived gl context destruction", size);
}
}