Loading libs/gui/SurfaceComposerClient.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <android/gui/ISurfaceComposerClient.h> #include <android/gui/IWindowInfosListener.h> #include <android/os/IInputConstants.h> #include <gui/TraceUtils.h> #include <utils/Errors.h> #include <utils/Log.h> #include <utils/SortedVector.h> Loading Loading @@ -910,9 +911,14 @@ void SurfaceComposerClient::doUncacheBufferTransaction(uint64_t cacheId) { uncacheBuffer.token = BufferCache::getInstance().getToken(); uncacheBuffer.id = cacheId; status_t status = sf->setTransactionState(FrameTimelineInfo{}, {}, {}, ISurfaceComposer::eOneWay, Transaction::getDefaultApplyToken(), {}, systemTime(), true, uncacheBuffer, false, {}, generateId()); if (status != NO_ERROR) { ALOGE_AND_TRACE("SurfaceComposerClient::doUncacheBufferTransaction - %s", strerror(-status)); } } void SurfaceComposerClient::Transaction::cacheBuffers() { Loading libs/gui/include/gui/TraceUtils.h +6 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,12 @@ #define ATRACE_FORMAT_INSTANT(fmt, ...) \ (CC_UNLIKELY(ATRACE_ENABLED()) && (TraceUtils::instantFormat(fmt, ##__VA_ARGS__), true)) #define ALOGE_AND_TRACE(fmt, ...) \ do { \ ALOGE(fmt, ##__VA_ARGS__); \ ATRACE_FORMAT_INSTANT(fmt, ##__VA_ARGS__); \ } while (false) namespace android { class TraceUtils { Loading services/surfaceflinger/ClientCache.cpp +9 −8 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <cinttypes> #include <android-base/stringprintf.h> #include <gui/TraceUtils.h> #include <renderengine/impl/ExternalTexture.h> #include "ClientCache.h" Loading @@ -36,12 +37,12 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, ClientCacheBuffer** outClientCacheBuffer) { auto& [processToken, id] = cacheId; if (processToken == nullptr) { ALOGE("failed to get buffer, invalid (nullptr) process token"); ALOGE_AND_TRACE("ClientCache::getBuffer - invalid (nullptr) process token"); return false; } auto it = mBuffers.find(processToken); if (it == mBuffers.end()) { ALOGE("failed to get buffer, invalid process token"); ALOGE_AND_TRACE("ClientCache::getBuffer - invalid process token"); return false; } Loading @@ -49,7 +50,7 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, auto bufItr = processBuffers.find(id); if (bufItr == processBuffers.end()) { ALOGV("failed to get buffer, invalid buffer id"); ALOGE_AND_TRACE("ClientCache::getBuffer - invalid buffer id"); return false; } Loading @@ -61,12 +62,12 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& buffer) { auto& [processToken, id] = cacheId; if (processToken == nullptr) { ALOGE("failed to cache buffer: invalid process token"); ALOGE_AND_TRACE("ClientCache::add - invalid (nullptr) process token"); return false; } if (!buffer) { ALOGE("failed to cache buffer: invalid buffer"); ALOGE_AND_TRACE("ClientCache::add - invalid (nullptr) buffer"); return false; } Loading @@ -79,7 +80,7 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu if (it == mBuffers.end()) { token = processToken.promote(); if (!token) { ALOGE("failed to cache buffer: invalid token"); ALOGE_AND_TRACE("ClientCache::add - invalid token"); return false; } Loading @@ -87,7 +88,7 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu if (token->localBinder() == nullptr) { status_t err = token->linkToDeath(mDeathRecipient); if (err != NO_ERROR) { ALOGE("failed to cache buffer: could not link to death"); ALOGE_AND_TRACE("ClientCache::add - could not link to death"); return false; } } Loading @@ -102,7 +103,7 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu auto& processBuffers = it->second.second; if (processBuffers.size() > BUFFER_CACHE_MAX_SIZE) { ALOGE("failed to cache buffer: cache is full"); ALOGE_AND_TRACE("ClientCache::add - cache is full"); return false; } Loading Loading
libs/gui/SurfaceComposerClient.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <android/gui/ISurfaceComposerClient.h> #include <android/gui/IWindowInfosListener.h> #include <android/os/IInputConstants.h> #include <gui/TraceUtils.h> #include <utils/Errors.h> #include <utils/Log.h> #include <utils/SortedVector.h> Loading Loading @@ -910,9 +911,14 @@ void SurfaceComposerClient::doUncacheBufferTransaction(uint64_t cacheId) { uncacheBuffer.token = BufferCache::getInstance().getToken(); uncacheBuffer.id = cacheId; status_t status = sf->setTransactionState(FrameTimelineInfo{}, {}, {}, ISurfaceComposer::eOneWay, Transaction::getDefaultApplyToken(), {}, systemTime(), true, uncacheBuffer, false, {}, generateId()); if (status != NO_ERROR) { ALOGE_AND_TRACE("SurfaceComposerClient::doUncacheBufferTransaction - %s", strerror(-status)); } } void SurfaceComposerClient::Transaction::cacheBuffers() { Loading
libs/gui/include/gui/TraceUtils.h +6 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,12 @@ #define ATRACE_FORMAT_INSTANT(fmt, ...) \ (CC_UNLIKELY(ATRACE_ENABLED()) && (TraceUtils::instantFormat(fmt, ##__VA_ARGS__), true)) #define ALOGE_AND_TRACE(fmt, ...) \ do { \ ALOGE(fmt, ##__VA_ARGS__); \ ATRACE_FORMAT_INSTANT(fmt, ##__VA_ARGS__); \ } while (false) namespace android { class TraceUtils { Loading
services/surfaceflinger/ClientCache.cpp +9 −8 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <cinttypes> #include <android-base/stringprintf.h> #include <gui/TraceUtils.h> #include <renderengine/impl/ExternalTexture.h> #include "ClientCache.h" Loading @@ -36,12 +37,12 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, ClientCacheBuffer** outClientCacheBuffer) { auto& [processToken, id] = cacheId; if (processToken == nullptr) { ALOGE("failed to get buffer, invalid (nullptr) process token"); ALOGE_AND_TRACE("ClientCache::getBuffer - invalid (nullptr) process token"); return false; } auto it = mBuffers.find(processToken); if (it == mBuffers.end()) { ALOGE("failed to get buffer, invalid process token"); ALOGE_AND_TRACE("ClientCache::getBuffer - invalid process token"); return false; } Loading @@ -49,7 +50,7 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, auto bufItr = processBuffers.find(id); if (bufItr == processBuffers.end()) { ALOGV("failed to get buffer, invalid buffer id"); ALOGE_AND_TRACE("ClientCache::getBuffer - invalid buffer id"); return false; } Loading @@ -61,12 +62,12 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& buffer) { auto& [processToken, id] = cacheId; if (processToken == nullptr) { ALOGE("failed to cache buffer: invalid process token"); ALOGE_AND_TRACE("ClientCache::add - invalid (nullptr) process token"); return false; } if (!buffer) { ALOGE("failed to cache buffer: invalid buffer"); ALOGE_AND_TRACE("ClientCache::add - invalid (nullptr) buffer"); return false; } Loading @@ -79,7 +80,7 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu if (it == mBuffers.end()) { token = processToken.promote(); if (!token) { ALOGE("failed to cache buffer: invalid token"); ALOGE_AND_TRACE("ClientCache::add - invalid token"); return false; } Loading @@ -87,7 +88,7 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu if (token->localBinder() == nullptr) { status_t err = token->linkToDeath(mDeathRecipient); if (err != NO_ERROR) { ALOGE("failed to cache buffer: could not link to death"); ALOGE_AND_TRACE("ClientCache::add - could not link to death"); return false; } } Loading @@ -102,7 +103,7 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu auto& processBuffers = it->second.second; if (processBuffers.size() > BUFFER_CACHE_MAX_SIZE) { ALOGE("failed to cache buffer: cache is full"); ALOGE_AND_TRACE("ClientCache::add - cache is full"); return false; } Loading