summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android Build Merger (Role) <android-build-merger@google.com> 2017-08-14 00:37:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-08-14 00:37:46 +0000
commit9041a48649f71061a0eb0dfaa0988009b522fa5b (patch)
tree44a98139f8cf26c005153985b356406195bfa0f4
parentf88ba93f6a3959ff63c5f101c0133a19e4d6790e (diff)
parentcfdc254bb2990e35da94843f5da60627d6feb001 (diff)
Merge "Merge "Fix out-of-order transactions (2/2)" into oc-dr1-dev am: 0436b01d1b" into oc-dr1-dev-plus-aosp
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index a57e8cf3e4..2703db8e93 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2861,10 +2861,12 @@ void SurfaceFlinger::setTransactionState(
}
}
- // If a synchronous transaction is explicitly requested without any changes,
- // force a transaction anyway. This can be used as a flush mechanism for
- // previous async transactions.
- if (transactionFlags == 0 && (flags & eSynchronous)) {
+ // If a synchronous transaction is explicitly requested without any changes, force a transaction
+ // anyway. This can be used as a flush mechanism for previous async transactions.
+ // Empty animation transaction can be used to simulate back-pressure, so also force a
+ // transaction for empty animation transactions.
+ if (transactionFlags == 0 &&
+ ((flags & eSynchronous) || (flags & eAnimation))) {
transactionFlags = eTransactionNeeded;
}