summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Patrick Williams <pdwilliams@google.com> 2022-11-14 18:41:38 +0000
committer Patrick Williams <pdwilliams@google.com> 2022-11-14 23:49:54 +0000
commitae9ab5331abd646e601b59f9c13f3361e351e49e (patch)
tree4efc5fcd96ef52801e14693bfe804b3c47b7c659 /services/surfaceflinger/SurfaceFlinger.cpp
parentf8ebb5b58d973109811154eae03d687b9da2c87c (diff)
SF: Trigger ANR when buffer exceeds max size
Bug: 244218818 Test: presubmits Change-Id: I1116f159c002ae896379a18c14bbe76406b67d44
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 13bfd6235a..ec5dc0e67d 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -7022,9 +7022,16 @@ std::shared_ptr<renderengine::ExternalTexture> SurfaceFlinger::getExternalTextur
BufferData& bufferData, const char* layerName, uint64_t transactionId) {
if (bufferData.buffer &&
exceedsMaxRenderTargetSize(bufferData.buffer->getWidth(), bufferData.buffer->getHeight())) {
- ALOGE("Attempted to create an ExternalTexture for layer %s that exceeds render target "
- "size limit.",
- layerName);
+ std::string errorMessage =
+ base::StringPrintf("Attempted to create an ExternalTexture with size (%u, %u) for "
+ "layer %s that exceeds render target size limit of %u.",
+ bufferData.buffer->getWidth(), bufferData.buffer->getHeight(),
+ layerName, static_cast<uint32_t>(mMaxRenderTargetSize));
+ ALOGD("%s", errorMessage.c_str());
+ if (bufferData.releaseBufferListener) {
+ bufferData.releaseBufferListener->onTransactionQueueStalled(
+ String8(errorMessage.c_str()));
+ }
return nullptr;
}