diff options
author | Jorim Jaggi <jjaggi@google.com> | 2017-08-09 16:10:29 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-08-09 16:10:29 +0000 |
commit | 0436b01d1b48c55e59d8ad21187c0e80b7828a9f (patch) | |
tree | 3db100599bd38d642fe04076f845478516c0a021 | |
parent | fc0b9110901cd9814a83c574fdaf5c4428838424 (diff) | |
parent | bdcf09c4984d47e30e34ff0d3cb1b797ba7fd778 (diff) | |
download | native-0436b01d1b48c55e59d8ad21187c0e80b7828a9f.tar.gz |
Merge "Fix out-of-order transactions (2/2)" into oc-dr1-dev
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 10 |
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; } |