summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/ClientCache.cpp
diff options
context:
space:
mode:
authorScott Lobdell <slobdell@google.com>2021-04-25 19:53:06 +0000
committerRob Seymour <rseymour@google.com>2021-05-06 22:32:25 +0000
commitafbe732519a96ff0a42a1c98bd59fd04080b4a96 (patch)
tree9ca836d438ca47756e4761ee4b844b85bd7e8857 /services/surfaceflinger/ClientCache.cpp
parent7a303d6e8135bbd0a32075986c9f7083e0fbef23 (diff)
parent7132116dfd8bdb9c5b505db8d8a27526a4e889d8 (diff)
Merge SP1A.210425.001
Change-Id: I219cc0af128876534b77a72c36979fa1fe08ba13
Diffstat (limited to 'services/surfaceflinger/ClientCache.cpp')
-rw-r--r--services/surfaceflinger/ClientCache.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/services/surfaceflinger/ClientCache.cpp b/services/surfaceflinger/ClientCache.cpp
index 44b33ef43d..f310738423 100644
--- a/services/surfaceflinger/ClientCache.cpp
+++ b/services/surfaceflinger/ClientCache.cpp
@@ -102,7 +102,12 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu
return false;
}
- processBuffers[id].buffer = buffer;
+ LOG_ALWAYS_FATAL_IF(mRenderEngine == nullptr,
+ "Attempted to build the ClientCache before a RenderEngine instance was "
+ "ready!");
+ processBuffers[id].buffer = std::make_shared<
+ renderengine::ExternalTexture>(buffer, *mRenderEngine,
+ renderengine::ExternalTexture::Usage::READABLE);
return true;
}
@@ -132,7 +137,7 @@ void ClientCache::erase(const client_cache_t& cacheId) {
}
}
-sp<GraphicBuffer> ClientCache::get(const client_cache_t& cacheId) {
+std::shared_ptr<renderengine::ExternalTexture> ClientCache::get(const client_cache_t& cacheId) {
std::lock_guard lock(mMutex);
ClientCacheBuffer* buf = nullptr;
@@ -213,8 +218,8 @@ void ClientCache::dump(std::string& result) {
auto &buffers = i.second.second;
for (auto& [id, clientCacheBuffer] : buffers) {
StringAppendF(&result, "\t ID: %d, Width/Height: %d,%d\n", (int)id,
- (int)clientCacheBuffer.buffer->getWidth(),
- (int)clientCacheBuffer.buffer->getHeight());
+ (int)clientCacheBuffer.buffer->getBuffer()->getWidth(),
+ (int)clientCacheBuffer.buffer->getBuffer()->getHeight());
}
}
}