diff options
author | 2019-03-29 14:03:53 -0700 | |
---|---|---|
committer | 2019-04-16 15:39:28 -0700 | |
commit | 947d34ecad84bdaf496748eeb9f6e35b33deb339 (patch) | |
tree | 29f668d1d193b97ab93d74b0d4cdc7b0bd239c3f /libs/gui/SurfaceComposerClient.cpp | |
parent | 1688f5246f156e815bd7b07ba7d5c39cc821e8d6 (diff) |
Change slot generation for BufferState
BufferState layers now do slot generation with buffer death considered
appropriately. When a buffer dies, the slot will be pushed onto a stack
of available slots to be reused at the next opportunity. This should
mimic BufferQueue slot behavior and prevent Composer Resources from
growing too large.
Test: build, boot, manual
Bug: 129351223
Change-Id: Icef9592593cacb0b5c6b12f6679fc2c4dabdcd19
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
-rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 611da89ef6..a19be12d61 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -387,9 +387,9 @@ void SurfaceComposerClient::doDropReferenceTransaction(const sp<IBinder>& handle void SurfaceComposerClient::doUncacheBufferTransaction(uint64_t cacheId) { sp<ISurfaceComposer> sf(ComposerService::getComposerService()); - cached_buffer_t uncacheBuffer; + client_cache_t uncacheBuffer; uncacheBuffer.token = BufferCache::getInstance().getToken(); - uncacheBuffer.cacheId = cacheId; + uncacheBuffer.id = cacheId; sf->setTransactionState({}, {}, 0, nullptr, {}, -1, uncacheBuffer, {}); } @@ -422,7 +422,7 @@ void SurfaceComposerClient::Transaction::cacheBuffers() { } s->what |= layer_state_t::eCachedBufferChanged; s->cachedBuffer.token = BufferCache::getInstance().getToken(); - s->cachedBuffer.cacheId = cacheId; + s->cachedBuffer.id = cacheId; // If we have more buffers than the size of the cache, we should stop caching so we don't // evict other buffers in this transaction |