summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Patrick Williams <pdwilliams@google.com> 2022-09-20 10:27:09 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-09-20 10:27:09 +0000
commiteebf7c3ba2c969ba53cee6af6619112f10e2fefd (patch)
treea44bdb7d8f32951d22388b34b90f979408ac7cd1 /services/surfaceflinger/SurfaceFlinger.cpp
parent7fcee2ea65af03f1d29ad0a5c583647b30ea5bfd (diff)
parentbedb44bb15cd11689b96770a45eccf475778e9eb (diff)
Merge "SF: Populate RE layer settings from layer snapshot and CE layer state"
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 55a54fe6a9..f3551ae080 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -6654,6 +6654,11 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::renderScreenImpl(
std::vector<Layer*> renderedLayers;
bool disableBlurs = false;
traverseLayers([&](Layer* layer) {
+ // Layer::prepareClientComposition uses the layer's snapshot to populate the resulting
+ // LayerSettings. Calling Layer::updateSnapshot ensures that LayerSettings are
+ // generated with the layer's current buffer and geometry.
+ layer->updateSnapshot(true /* updateGeometry */);
+
disableBlurs |= layer->getDrawingState().sidebandStream != nullptr;
Region clip(renderArea.getBounds());