diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 4d82c1ca7a..95446f0f6c 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1063,7 +1063,13 @@ void SurfaceFlinger::handleMessageRefresh() { postComposition(refreshStartTime); mPreviousPresentFence = mHwc->getRetireFence(HWC_DISPLAY_PRIMARY); - mHadClientComposition = mHwc->hasClientComposition(HWC_DISPLAY_PRIMARY); + + mHadClientComposition = false; + for (size_t displayId = 0; displayId < mDisplays.size(); ++displayId) { + const sp<DisplayDevice>& displayDevice = mDisplays[displayId]; + mHadClientComposition = mHadClientComposition || + mHwc->hasClientComposition(displayDevice->getHwcDisplayId()); + } // Release any buffers which were replaced this frame for (auto& layer : mLayersWithQueuedFrames) { |