From 5045ab2bb14110f577e3cfff8acfae906dc29935 Mon Sep 17 00:00:00 2001 From: Pablo Ceballos Date: Tue, 17 May 2016 17:52:08 -0700 Subject: [PATCH] SF: Re-enable fence tracker by default - Don't check whether the fences have completed or not unless the data has been requested. Bug 22431447 Change-Id: Id4cb8bfba38547884849ef23c9b6f42f0d4d0750 --- services/surfaceflinger/Android.mk | 1 - services/surfaceflinger/FenceTracker.cpp | 2 -- services/surfaceflinger/FenceTracker.h | 2 +- services/surfaceflinger/SurfaceFlinger.cpp | 12 ------------ services/surfaceflinger/SurfaceFlinger_hwc1.cpp | 12 ------------ 5 files changed, 1 insertion(+), 28 deletions(-) diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk index fb6307ee59..d654b17769 100644 --- a/services/surfaceflinger/Android.mk +++ b/services/surfaceflinger/Android.mk @@ -44,7 +44,6 @@ LOCAL_C_INCLUDES := \ LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\" LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES -#LOCAL_CFLAGS += -DENABLE_FENCE_TRACKING USE_HWC2 := false ifeq ($(USE_HWC2),true) diff --git a/services/surfaceflinger/FenceTracker.cpp b/services/surfaceflinger/FenceTracker.cpp index 885d712530..d415bd5ed8 100644 --- a/services/surfaceflinger/FenceTracker.cpp +++ b/services/surfaceflinger/FenceTracker.cpp @@ -184,8 +184,6 @@ void FenceTracker::addFrame(nsecs_t refreshStartTime, sp retireFence, mOffset = (mOffset + 1) % MAX_FRAME_HISTORY; mFrameCounter++; - - checkFencesForCompletion(); } } // namespace android diff --git a/services/surfaceflinger/FenceTracker.h b/services/surfaceflinger/FenceTracker.h index de99820370..2fcc314117 100644 --- a/services/surfaceflinger/FenceTracker.h +++ b/services/surfaceflinger/FenceTracker.h @@ -42,7 +42,7 @@ public: const Vector>& layers, sp glDoneFence); protected: - static constexpr size_t MAX_FRAME_HISTORY = 128; + static constexpr size_t MAX_FRAME_HISTORY = 8; struct LayerRecord { String8 name; // layer name diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 1fa7955892..0276d38243 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -939,11 +939,7 @@ bool SurfaceFlinger::handleMessageInvalidate() { void SurfaceFlinger::handleMessageRefresh() { ATRACE_CALL(); -#ifdef ENABLE_FENCE_TRACKING nsecs_t refreshStartTime = systemTime(SYSTEM_TIME_MONOTONIC); -#else - nsecs_t refreshStartTime = 0; -#endif static nsecs_t previousExpectedPresent = 0; nsecs_t expectedPresent = mPrimaryDispSync.computeNextRefresh(0); static bool previousFrameMissed = false; @@ -1033,11 +1029,7 @@ void SurfaceFlinger::preComposition() } } -#ifdef ENABLE_FENCE_TRACKING void SurfaceFlinger::postComposition(nsecs_t refreshStartTime) -#else -void SurfaceFlinger::postComposition(nsecs_t /*refreshStartTime*/) -#endif { ATRACE_CALL(); ALOGV("postComposition"); @@ -1069,10 +1061,8 @@ void SurfaceFlinger::postComposition(nsecs_t /*refreshStartTime*/) } } -#ifdef ENABLE_FENCE_TRACKING mFenceTracker.addFrame(refreshStartTime, presentFence, hw->getVisibleLayersSortedByZ(), hw->getClientTargetAcquireFence()); -#endif if (mAnimCompositionPending) { mAnimCompositionPending = false; @@ -2610,14 +2600,12 @@ status_t SurfaceFlinger::dump(int fd, const Vector& args) dumpAll = false; } -#ifdef ENABLE_FENCE_TRACKING if ((index < numArgs) && (args[index] == String16("--fences"))) { index++; mFenceTracker.dump(&result); dumpAll = false; } -#endif } if (dumpAll) { diff --git a/services/surfaceflinger/SurfaceFlinger_hwc1.cpp b/services/surfaceflinger/SurfaceFlinger_hwc1.cpp index f094913f46..71d7cf976f 100644 --- a/services/surfaceflinger/SurfaceFlinger_hwc1.cpp +++ b/services/surfaceflinger/SurfaceFlinger_hwc1.cpp @@ -943,11 +943,7 @@ bool SurfaceFlinger::handleMessageInvalidate() { void SurfaceFlinger::handleMessageRefresh() { ATRACE_CALL(); -#ifdef ENABLE_FENCE_TRACKING nsecs_t refreshStartTime = systemTime(SYSTEM_TIME_MONOTONIC); -#else - nsecs_t refreshStartTime = 0; -#endif static nsecs_t previousExpectedPresent = 0; nsecs_t expectedPresent = mPrimaryDispSync.computeNextRefresh(0); static bool previousFrameMissed = false; @@ -1029,11 +1025,7 @@ void SurfaceFlinger::preComposition() } } -#ifdef ENABLE_FENCE_TRACKING void SurfaceFlinger::postComposition(nsecs_t refreshStartTime) -#else -void SurfaceFlinger::postComposition(nsecs_t /*refreshStartTime*/) -#endif { const LayerVector& layers(mDrawingState.layersSortedByZ); const size_t count = layers.size(); @@ -1063,10 +1055,8 @@ void SurfaceFlinger::postComposition(nsecs_t /*refreshStartTime*/) } } -#ifdef ENABLE_FENCE_TRACKING mFenceTracker.addFrame(refreshStartTime, presentFence, hw->getVisibleLayersSortedByZ(), hw->getClientTargetAcquireFence()); -#endif if (mAnimCompositionPending) { mAnimCompositionPending = false; @@ -2626,14 +2616,12 @@ status_t SurfaceFlinger::dump(int fd, const Vector& args) dumpAll = false; } -#ifdef ENABLE_FENCE_TRACKING if ((index < numArgs) && (args[index] == String16("--fences"))) { index++; mFenceTracker.dump(&result); dumpAll = false; } -#endif } if (dumpAll) { -- 2.11.0