summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Stoza <stoza@google.com>2015-04-22 23:57:28 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-04-22 23:57:28 +0000
commitde5c15b8bd12143829d043fa4ab457600e5682b3 (patch)
tree4bba41e2d7119bb100c6960ced24822e6dc75f99
parent7637e35d17e06d532b0d2d11c0eef60594726209 (diff)
parent9e9b0445544f11fdbf21a29601567af2d1819a30 (diff)
downloadnative-de5c15b8bd12143829d043fa4ab457600e5682b3.tar.gz
Merge "SF: Always perform sideband transactions"
-rw-r--r--services/surfaceflinger/Layer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 7bb7529edc..2944c63233 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -918,7 +918,7 @@ uint32_t Layer::doTransaction(uint32_t flags) {
const bool resizePending = (c.requested.w != c.active.w) ||
(c.requested.h != c.active.h);
- if (resizePending) {
+ if (resizePending && mSidebandStream == NULL) {
// don't let Layer::doTransaction update the drawing state
// if we have a pending resize, unless we are in fixed-size mode.
// the drawing state will be updated only once we receive a buffer
@@ -927,6 +927,10 @@ uint32_t Layer::doTransaction(uint32_t flags) {
// in particular, we want to make sure the clip (which is part
// of the geometry state) is latched together with the size but is
// latched immediately when no resizing is involved.
+ //
+ // If a sideband stream is attached, however, we want to skip this
+ // optimization so that transactions aren't missed when a buffer
+ // never arrives
flags |= eDontUpdateGeometryState;
}