diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 596ec12d9e..abab49da96 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -8184,7 +8184,7 @@ void SurfaceFlinger::captureScreenCommon(RenderAreaBuilderVariant renderAreaBuil } if (FlagManager::getInstance().single_hop_screenshot() && - FlagManager::getInstance().ce_fence_promise()) { + FlagManager::getInstance().ce_fence_promise() && mRenderEngine->isThreaded()) { std::vector<sp<LayerFE>> layerFEs; auto displayState = getDisplayAndLayerSnapshotsFromMainThread(renderAreaBuilder, getLayerSnapshotsFn, @@ -8558,10 +8558,8 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::renderScreenImpl( // to CompositionEngine::present. ftl::SharedFuture<FenceResult> presentFuture; if (FlagManager::getInstance().single_hop_screenshot() && - FlagManager::getInstance().ce_fence_promise()) { - presentFuture = mRenderEngine->isThreaded() - ? ftl::yield(present()).share() - : mScheduler->schedule(std::move(present)).share(); + FlagManager::getInstance().ce_fence_promise() && mRenderEngine->isThreaded()) { + presentFuture = ftl::yield(present()).share(); } else { presentFuture = mRenderEngine->isThreaded() ? ftl::defer(std::move(present)).share() : ftl::yield(present()).share(); |