diff options
author | 2019-10-27 04:44:29 +0000 | |
---|---|---|
committer | 2019-10-27 04:44:29 +0000 | |
commit | 1aed8b369dd977fba69134fc03bf3762c26c560c (patch) | |
tree | 5840f75cb9669f1da1c4aae8ab1cf2dedd016fb8 /services/surfaceflinger/BufferStateLayer.cpp | |
parent | 19c8513c7b7d75ddd78d1b4c6948e4dadc1e50f7 (diff) | |
parent | 0205f87a0121f1e6057055752365a01b390c60ec (diff) |
Merge "Merge Coral/Flame into AOSP master"
Diffstat (limited to 'services/surfaceflinger/BufferStateLayer.cpp')
-rw-r--r-- | services/surfaceflinger/BufferStateLayer.cpp | 9 |
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; |