Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 599e254e authored by Chris Craik's avatar Chris Craik
Browse files

Additional layer logging, and added mutex

bug:17208461
Change-Id: I006d432a3b633235dde0b81ad2bf28b835b5335f
parent f634c08b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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");
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -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 */