diff options
author | 2022-05-17 14:54:32 +0000 | |
---|---|---|
committer | 2022-05-17 14:54:32 +0000 | |
commit | 1c94d263dae07cf58f76b1612f8f0a00d6d75fe3 (patch) | |
tree | ed66cc20d1e8294bab537860923f6cd663c4fc5b /services/surfaceflinger/RegionSamplingThread.cpp | |
parent | 4d0354932995489267e30d6cf265acf6d364b6ed (diff) | |
parent | bb448ce9aa521f9574d94c9ec2d57eb7d37382cb (diff) |
Merge "SF: Do not duplicate fences per layer per frame" into tm-dev
Diffstat (limited to 'services/surfaceflinger/RegionSamplingThread.cpp')
-rw-r--r-- | services/surfaceflinger/RegionSamplingThread.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp index e29e6ab05f..2487dbd793 100644 --- a/services/surfaceflinger/RegionSamplingThread.cpp +++ b/services/surfaceflinger/RegionSamplingThread.cpp @@ -355,12 +355,15 @@ void RegionSamplingThread::captureSample() { WRITEABLE); } - auto captureScreenResultFuture = - mFlinger.captureScreenCommon(std::move(renderAreaFuture), traverseLayers, buffer, - true /* regionSampling */, false /* grayscale */, nullptr); - auto& captureScreenResult = captureScreenResultFuture.get(); - if (captureScreenResult.drawFence.ok()) { - sync_wait(captureScreenResult.drawFence.get(), -1); + constexpr bool kRegionSampling = true; + constexpr bool kGrayscale = false; + + if (const auto fenceResult = + mFlinger.captureScreenCommon(std::move(renderAreaFuture), traverseLayers, buffer, + kRegionSampling, kGrayscale, nullptr) + .get(); + fenceResult.ok()) { + fenceResult.value()->waitForever(LOG_TAG); } std::vector<Descriptor> activeDescriptors; |