Loading libs/hwui/RenderState.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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"); } } Loading libs/hwui/RenderState.h +4 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <set> #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> #include <utils/Mutex.h> #include <private/hwui/DrawGlInfo.h> Loading Loading @@ -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); } Loading Loading @@ -83,6 +86,7 @@ private: GLsizei mViewportWidth; GLsizei mViewportHeight; GLuint mFramebuffer; Mutex mLayerLock; }; } /* namespace uirenderer */ Loading Loading
libs/hwui/RenderState.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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"); } } Loading
libs/hwui/RenderState.h +4 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <set> #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> #include <utils/Mutex.h> #include <private/hwui/DrawGlInfo.h> Loading Loading @@ -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); } Loading Loading @@ -83,6 +86,7 @@ private: GLsizei mViewportWidth; GLsizei mViewportHeight; GLuint mFramebuffer; Mutex mLayerLock; }; } /* namespace uirenderer */ Loading