diff options
author | 2014-09-05 15:17:11 -0700 | |
---|---|---|
committer | 2014-09-05 15:17:11 -0700 | |
commit | 599e254ea33231b1809466ae765dbee53dc4685c (patch) | |
tree | b3e371689622bd5cada71516bd29310e3028de92 | |
parent | f634c08b57256bf236c00ce1e917f6299d34e8a1 (diff) |
Additional layer logging, and added mutex
bug:17208461
Change-Id: I006d432a3b633235dde0b81ad2bf28b835b5335f
-rw-r--r-- | libs/hwui/RenderState.cpp | 8 | ||||
-rw-r--r-- | libs/hwui/RenderState.h | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libs/hwui/RenderState.cpp b/libs/hwui/RenderState.cpp index a7c5e85d9123..ec8307f28d5b 100644 --- a/libs/hwui/RenderState.cpp +++ b/libs/hwui/RenderState.cpp @@ -38,6 +38,7 @@ void RenderState::onGLContextCreated() { } void RenderState::onGLContextDestroyed() { + AutoMutex _lock(mLayerLock); if (CC_UNLIKELY(!mActiveLayers.empty())) { mCaches->dumpMemoryUsage(); for (std::set<renderthread::CanvasContext*>::iterator cit = mRegisteredContexts.begin(); @@ -51,6 +52,13 @@ void RenderState::onGLContextDestroyed() { } context->mRootRenderNode->debugDumpLayers(" "); } + + 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); + } LOG_ALWAYS_FATAL("layers have survived gl context destruction"); } } diff --git a/libs/hwui/RenderState.h b/libs/hwui/RenderState.h index c7ab197c4fb2..74bafcaeb420 100644 --- a/libs/hwui/RenderState.h +++ b/libs/hwui/RenderState.h @@ -19,6 +19,7 @@ #include <set> #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> +#include <utils/Mutex.h> #include <private/hwui/DrawGlInfo.h> @@ -52,9 +53,11 @@ public: void debugOverdraw(bool enable, bool clear); void registerLayer(const Layer* layer) { + AutoMutex _lock(mLayerLock); mActiveLayers.insert(layer); } void unregisterLayer(const Layer* layer) { + AutoMutex _lock(mLayerLock); mActiveLayers.erase(layer); } @@ -83,6 +86,7 @@ private: GLsizei mViewportWidth; GLsizei mViewportHeight; GLuint mFramebuffer; + Mutex mLayerLock; }; } /* namespace uirenderer */ |