summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/BufferQueueLayer.cpp
diff options
context:
space:
mode:
authorValerie Hau <vhau@google.com>2019-03-22 10:35:42 -0700
committerValerie Hau <vhau@google.com>2019-03-26 09:28:55 -0700
commit13f0d1a7684dcbc9a339c5e9cb3ff2d2bf80f186 (patch)
tree475f1fd841ef2e12b32a5b7f30f05e4acf5af968 /services/surfaceflinger/BufferQueueLayer.cpp
parent1361663ba9e64303e9885e1a32c648247dbc60c2 (diff)
downloadandroid_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.cpp6
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);