diff options
| -rw-r--r-- | services/surfaceflinger/BufferStateLayer.cpp | 5 | 
1 files changed, 4 insertions, 1 deletions
| 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; |