summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/BufferStateLayer.cpp
diff options
context:
space:
mode:
author Xin Li <delphij@google.com> 2019-10-27 04:44:29 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2019-10-27 04:44:29 +0000
commit1aed8b369dd977fba69134fc03bf3762c26c560c (patch)
tree5840f75cb9669f1da1c4aae8ab1cf2dedd016fb8 /services/surfaceflinger/BufferStateLayer.cpp
parent19c8513c7b7d75ddd78d1b4c6948e4dadc1e50f7 (diff)
parent0205f87a0121f1e6057055752365a01b390c60ec (diff)
Merge "Merge Coral/Flame into AOSP master"
Diffstat (limited to 'services/surfaceflinger/BufferStateLayer.cpp')
-rw-r--r--services/surfaceflinger/BufferStateLayer.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/services/surfaceflinger/BufferStateLayer.cpp b/services/surfaceflinger/BufferStateLayer.cpp
index 203bd72e6f..63a07c35ca 100644
--- a/services/surfaceflinger/BufferStateLayer.cpp
+++ b/services/surfaceflinger/BufferStateLayer.cpp
@@ -50,8 +50,12 @@ BufferStateLayer::BufferStateLayer(const LayerCreationArgs& args)
mOverrideScalingMode = NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW;
mCurrentState.dataspace = ui::Dataspace::V0_SRGB;
}
+
BufferStateLayer::~BufferStateLayer() {
if (mActiveBuffer != nullptr) {
+ // Ensure that mActiveBuffer is uncached from RenderEngine here, as
+ // RenderEngine may have been using the buffer as an external texture
+ // after the client uncached the buffer.
auto& engine(mFlinger->getRenderEngine());
engine.unbindExternalTextureBuffer(mActiveBuffer->getId());
}
@@ -571,11 +575,6 @@ status_t BufferStateLayer::updateActiveBuffer() {
return BAD_VALUE;
}
- if (mActiveBuffer != nullptr) {
- // todo: get this to work with BufferStateLayerCache
- auto& engine(mFlinger->getRenderEngine());
- engine.unbindExternalTextureBuffer(mActiveBuffer->getId());
- }
mActiveBuffer = s.buffer;
mActiveBufferFence = s.acquireFence;
auto& layerCompositionState = getCompositionLayer()->editState().frontEnd;