diff options
author | Dan Stoza <stoza@google.com> | 2018-05-31 15:28:00 -0700 |
---|---|---|
committer | Dan Stoza <stoza@google.com> | 2018-05-31 15:28:00 -0700 |
commit | a277ccba0781c07b73afda203fcaabd46104b49d (patch) | |
tree | 8682fc31109d5c4f37a619ac0f75a6d622141bed | |
parent | 63a2d825b866c6a0d9201222a6ba54b352937ecf (diff) | |
download | native-a277ccba0781c07b73afda203fcaabd46104b49d.tar.gz |
SF: Add workaround to release screenshot buffer
Works around driver behavior to force the [E]GL driver to fully release
the screenshot buffer immediately after the screenshot is complete
rather than deferring until the next instance of client composition.
Bug: b/77935566
Test: Manual, inspect 'dumpsys SurfaceFlinger' after launching an app
and then returning home (which causes a screenshot for overview)
Change-Id: I4f33d89f3ff3020707a9f556a1fcfe34bc9b7adb
-rw-r--r-- | services/surfaceflinger/RenderEngine/RenderEngine.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp index 4c878aee31..c2233f9b59 100644 --- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp +++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp @@ -427,6 +427,12 @@ void RenderEngine::unbindNativeBufferAsFrameBuffer(RE::BindNativeBufferAsFramebu // back to main framebuffer unbindFramebuffer(bindHelper->mTexName, bindHelper->mFbName); eglDestroyImageKHR(mEGLDisplay, bindHelper->mImage); + + // Workaround for b/77935566 to force the EGL driver to release the + // screenshot buffer + setScissor(0, 0, 0, 0); + clearWithColor(0.0, 0.0, 0.0, 0.0); + disableScissor(); } // --------------------------------------------------------------------------- |