summaryrefslogtreecommitdiff
path: root/libs/gui/SurfaceComposerClient.cpp
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2016-04-13 01:40:35 +0000
committer Jorim Jaggi <jjaggi@google.com> 2016-04-13 01:43:21 +0000
commit092123cf5abe88c82deb89bb0188e1cc8d8338be (patch)
tree1e98ef22bba5def39716a8b35716b19c04686f8d /libs/gui/SurfaceComposerClient.cpp
parentc6a607aa7ab96f6b1bac487cffd1899e1f1cdcf5 (diff)
Revert "Death to synchronous transactions (1/2)"
This reverts commit c6a607aa7ab96f6b1bac487cffd1899e1f1cdcf5. It causes issues when resizing: default buffer size on the consumer side only gets set when the transaction actually executes. But because consumer is not blocked on SF over WM anymore, it gets the default buffer size before the surface is resized, and thus uses wrong bounds for the buffer to be drawn, and never submits another one. This needs a more involved fix. Bug: 28122036 Bug: 28128613 Change-Id: I0e738f99e43fc9ea25426e9e6e607e01413d3bb7
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
-rw-r--r--libs/gui/SurfaceComposerClient.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp
index f031296cec..418892a1c3 100644
--- a/libs/gui/SurfaceComposerClient.cpp
+++ b/libs/gui/SurfaceComposerClient.cpp
@@ -291,6 +291,9 @@ status_t Composer::setSize(const sp<SurfaceComposerClient>& client,
s->w = w;
s->h = h;
+ // Resizing a surface makes the transaction synchronous.
+ mForceSynchronous = true;
+
return NO_ERROR;
}
@@ -451,6 +454,7 @@ void Composer::setDisplayProjection(const sp<IBinder>& token,
s.viewport = layerStackRect;
s.frame = displayRect;
s.what |= DisplayState::eDisplayProjectionChanged;
+ mForceSynchronous = true; // TODO: do we actually still need this?
}
void Composer::setDisplaySize(const sp<IBinder>& token, uint32_t width, uint32_t height) {