diff options
| author | 2023-02-23 01:04:21 +0000 | |
|---|---|---|
| committer | 2023-02-23 01:04:21 +0000 | |
| commit | b7e106b19edc0e5a4f3dff0ccdbedd8ef4ea07e4 (patch) | |
| tree | 31f67f4151e6dae1d723f7265503758e84d73305 /services/surfaceflinger/SurfaceFlinger.cpp | |
| parent | a9bc4049b02163122c5f21b6051deec4ad993b52 (diff) | |
| parent | a156f48c32eac7e11d37700fdbfcdc3a54d65b78 (diff) | |
Merge "[sf] update latch time only for layers that will not be latched" into udc-dev
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 51dc02c9c4..c91ad49c9a 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -3863,7 +3863,7 @@ void SurfaceFlinger::commitOffscreenLayers() { for (Layer* offscreenLayer : mOffscreenLayers) { offscreenLayer->traverse(LayerVector::StateSet::Drawing, [](Layer* layer) { if (layer->clearTransactionFlags(eTransactionNeeded)) { - layer->doTransaction(0, 0); + layer->doTransaction(0); layer->commitChildList(); } }); @@ -3899,7 +3899,7 @@ bool SurfaceFlinger::latchBuffers() { // second frame. But layer 0's second frame could be waiting on display. mDrawingState.traverse([&](Layer* layer) { if (layer->clearTransactionFlags(eTransactionNeeded) || mForceTransactionDisplayChange) { - const uint32_t flags = layer->doTransaction(0, latchTime); + const uint32_t flags = layer->doTransaction(0); if (flags & Layer::eVisibleRegion) { mVisibleRegionsDirty = true; } @@ -3910,6 +3910,8 @@ bool SurfaceFlinger::latchBuffers() { mLayersWithQueuedFrames.emplace(sp<Layer>::fromExisting(layer)); } else { layer->useEmptyDamage(); + // If the layer has frames we will update the latch time when latching the buffer. + layer->updateLastLatchTime(latchTime); } }); mForceTransactionDisplayChange = false; |