diff options
| author | 2022-11-14 18:41:38 +0000 | |
|---|---|---|
| committer | 2022-11-14 23:49:54 +0000 | |
| commit | ae9ab5331abd646e601b59f9c13f3361e351e49e (patch) | |
| tree | 4efc5fcd96ef52801e14693bfe804b3c47b7c659 /services/surfaceflinger/SurfaceFlinger.cpp | |
| parent | f8ebb5b58d973109811154eae03d687b9da2c87c (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.cpp | 13 |
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; } |