diff options
author | Valerie Hau <vhau@google.com> | 2019-03-22 10:35:42 -0700 |
---|---|---|
committer | Valerie Hau <vhau@google.com> | 2019-03-26 09:28:55 -0700 |
commit | 13f0d1a7684dcbc9a339c5e9cb3ff2d2bf80f186 (patch) | |
tree | 475f1fd841ef2e12b32a5b7f30f05e4acf5af968 /services/surfaceflinger/BufferQueueLayer.cpp | |
parent | 1361663ba9e64303e9885e1a32c648247dbc60c2 (diff) | |
download | android_frameworks_native-13f0d1a7684dcbc9a339c5e9cb3ff2d2bf80f186.tar.gz android_frameworks_native-13f0d1a7684dcbc9a339c5e9cb3ff2d2bf80f186.tar.bz2 android_frameworks_native-13f0d1a7684dcbc9a339c5e9cb3ff2d2bf80f186.zip |
Return to manual slot use instead of slot generation
ION memory increase in composer process due to slot generation.
Revert to old slot generation for BufferQueue
Bug: 127655433
Test: build, boot, HwcBufferCacheTest
Change-Id: Ifbb5747a7878aef97c92ba09e2dc72d663d78066
Diffstat (limited to 'services/surfaceflinger/BufferQueueLayer.cpp')
-rw-r--r-- | services/surfaceflinger/BufferQueueLayer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp index e4179ee43..d3b36fe35 100644 --- a/services/surfaceflinger/BufferQueueLayer.cpp +++ b/services/surfaceflinger/BufferQueueLayer.cpp @@ -361,8 +361,12 @@ void BufferQueueLayer::setHwcLayerBuffer(const sp<const DisplayDevice>& display) uint32_t hwcSlot = 0; sp<GraphicBuffer> hwcBuffer; + + // INVALID_BUFFER_SLOT is used to identify BufferStateLayers. Default to 0 + // for BufferQueueLayers + int slot = (mActiveBufferSlot == BufferQueue::INVALID_BUFFER_SLOT) ? 0 : mActiveBufferSlot; (*outputLayer->editState().hwc) - .hwcBufferCache.getHwcBuffer(mActiveBuffer, &hwcSlot, &hwcBuffer); + .hwcBufferCache.getHwcBuffer(slot, mActiveBuffer, &hwcSlot, &hwcBuffer); auto acquireFence = mConsumer->getCurrentFence(); auto error = hwcLayer->setBuffer(hwcSlot, hwcBuffer, acquireFence); |