From 74f38b30e3755e767d042ba554640cd413629fcf Mon Sep 17 00:00:00 2001 From: Tianhua Sun Date: Thu, 02 Feb 2023 15:04:21 +0800 Subject: [PATCH] hwc: fix release fence error when video start [1/1] PD#SWPL-109140 Problem: return release fence error when video start, and this will cause vc put fence error. Solution: Do not reset mCurReleaseFence in clearBufferInfo, because SurfaceFlinger will call setBuffer multiple times in one vsync. Verify: t5m Change-Id: I22fb81760d45a659ac4b877d3c41fd81cb865d32 Signed-off-by: Tianhua Sun --- diff --git a/common/base/DrmFramebuffer.cpp b/common/base/DrmFramebuffer.cpp index 47c6bc6..3cf606e 100644 --- a/common/base/DrmFramebuffer.cpp +++ b/common/base/DrmFramebuffer.cpp @@ -163,8 +163,12 @@ // not reset prevReleaseFence for sidebandBuffer, as vt sidebanbuffer use it later if (!isVtBufferLocked()) { mPrevReleaseFence = mCurReleaseFence; - mCurReleaseFence.reset(); - mCurReleaseFence = DrmFence::NO_FENCE; + /* + * SF will call setBuffer multiple times in one vsync, + * so do not reset mCurReleaseFence in this function. + * mCurReleaseFence.reset(); + * mCurReleaseFence = DrmFence::NO_FENCE; + */ } mProcessFence.reset(); mProcessFence = DrmFence::NO_FENCE;