Loading services/surfaceflinger/SurfaceFlinger.cpp +9 −8 Original line number Original line Diff line number Diff line Loading @@ -317,8 +317,7 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) { mLayerTripleBufferingDisabled = atoi(value); mLayerTripleBufferingDisabled = atoi(value); ALOGI_IF(mLayerTripleBufferingDisabled, "Disabling Triple Buffering"); ALOGI_IF(mLayerTripleBufferingDisabled, "Disabling Triple Buffering"); // TODO (b/74616334): Reduce the default value once we isolate the leak const size_t defaultListSize = MAX_LAYERS; const size_t defaultListSize = 4 * MAX_LAYERS; auto listSize = property_get_int32("debug.sf.max_igbp_list_size", int32_t(defaultListSize)); auto listSize = property_get_int32("debug.sf.max_igbp_list_size", int32_t(defaultListSize)); mMaxGraphicBufferProducerListSize = (listSize > 0) ? size_t(listSize) : defaultListSize; mMaxGraphicBufferProducerListSize = (listSize > 0) ? size_t(listSize) : defaultListSize; Loading Loading @@ -3144,12 +3143,14 @@ status_t SurfaceFlinger::addClientLayer(const sp<Client>& client, parent->addChild(lbc); parent->addChild(lbc); } } if (gbc != nullptr) { mGraphicBufferProducerList.insert(IInterface::asBinder(gbc).get()); mGraphicBufferProducerList.insert(IInterface::asBinder(gbc).get()); // TODO (b/74616334): Change this back to a fatal assert once the leak is fixed LOG_ALWAYS_FATAL_IF(mGraphicBufferProducerList.size() > ALOGE_IF(mGraphicBufferProducerList.size() > mMaxGraphicBufferProducerListSize, mMaxGraphicBufferProducerListSize, "Suspected IGBP leak: %zu IGBPs (%zu max), %zu Layers", "Suspected IGBP leak: %zu IGBPs (%zu max), %zu Layers", mGraphicBufferProducerList.size(), mMaxGraphicBufferProducerListSize, mGraphicBufferProducerList.size(), mNumLayers); mMaxGraphicBufferProducerListSize, mNumLayers); } mLayersAdded = true; mLayersAdded = true; mNumLayers++; mNumLayers++; } } Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +9 −8 Original line number Original line Diff line number Diff line Loading @@ -317,8 +317,7 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) { mLayerTripleBufferingDisabled = atoi(value); mLayerTripleBufferingDisabled = atoi(value); ALOGI_IF(mLayerTripleBufferingDisabled, "Disabling Triple Buffering"); ALOGI_IF(mLayerTripleBufferingDisabled, "Disabling Triple Buffering"); // TODO (b/74616334): Reduce the default value once we isolate the leak const size_t defaultListSize = MAX_LAYERS; const size_t defaultListSize = 4 * MAX_LAYERS; auto listSize = property_get_int32("debug.sf.max_igbp_list_size", int32_t(defaultListSize)); auto listSize = property_get_int32("debug.sf.max_igbp_list_size", int32_t(defaultListSize)); mMaxGraphicBufferProducerListSize = (listSize > 0) ? size_t(listSize) : defaultListSize; mMaxGraphicBufferProducerListSize = (listSize > 0) ? size_t(listSize) : defaultListSize; Loading Loading @@ -3144,12 +3143,14 @@ status_t SurfaceFlinger::addClientLayer(const sp<Client>& client, parent->addChild(lbc); parent->addChild(lbc); } } if (gbc != nullptr) { mGraphicBufferProducerList.insert(IInterface::asBinder(gbc).get()); mGraphicBufferProducerList.insert(IInterface::asBinder(gbc).get()); // TODO (b/74616334): Change this back to a fatal assert once the leak is fixed LOG_ALWAYS_FATAL_IF(mGraphicBufferProducerList.size() > ALOGE_IF(mGraphicBufferProducerList.size() > mMaxGraphicBufferProducerListSize, mMaxGraphicBufferProducerListSize, "Suspected IGBP leak: %zu IGBPs (%zu max), %zu Layers", "Suspected IGBP leak: %zu IGBPs (%zu max), %zu Layers", mGraphicBufferProducerList.size(), mMaxGraphicBufferProducerListSize, mGraphicBufferProducerList.size(), mNumLayers); mMaxGraphicBufferProducerListSize, mNumLayers); } mLayersAdded = true; mLayersAdded = true; mNumLayers++; mNumLayers++; } } Loading