From a663c2bc47eee5279345c6f40bbae3deee69579c Mon Sep 17 00:00:00 2001 From: baocheng sun Date: Thu, 13 May 2021 18:51:28 +0800 Subject: Update sideband stream when BufferStateLayer has receive a buffer This CL updates the sideband when a frame is queued. Bug: 186383891 Test: b/186383891#comment10 Change-Id: I8d753ba47e06ca969606b0f8709990a097a8ad21 --- services/surfaceflinger/BufferStateLayer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'services/surfaceflinger/BufferStateLayer.cpp') diff --git a/services/surfaceflinger/BufferStateLayer.cpp b/services/surfaceflinger/BufferStateLayer.cpp index 24b35997b9..78756dfdf1 100644 --- a/services/surfaceflinger/BufferStateLayer.cpp +++ b/services/surfaceflinger/BufferStateLayer.cpp @@ -622,7 +622,10 @@ void BufferStateLayer::setAutoRefresh(bool autoRefresh) { } bool BufferStateLayer::latchSidebandStream(bool& recomputeVisibleRegions) { - if (mSidebandStreamChanged.exchange(false)) { + // We need to update the sideband stream if the layer has both a buffer and a sideband stream. + const bool updateSidebandStream = hasFrameUpdate() && mSidebandStream.get(); + + if (mSidebandStreamChanged.exchange(false) || updateSidebandStream) { const State& s(getDrawingState()); // mSidebandStreamChanged was true mSidebandStream = s.sidebandStream; -- cgit v1.2.3-59-g8ed1b