summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/BufferStateLayer.cpp
diff options
context:
space:
mode:
author Rob Carr <racarr@google.com> 2021-06-08 17:53:51 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-06-08 17:53:51 +0000
commit9d7aee1d786b01942e90cb6972b2bc1e06920aef (patch)
tree350af9d02b023ebabe0572ed7a605858533f86b1 /services/surfaceflinger/BufferStateLayer.cpp
parent57aa9a97c886a7e39446fbf1fc545af88cbca530 (diff)
parent97e7cc0ce23e417a2355a4559d43fd9c9ccb4efa (diff)
Merge "SF: Pass transformHint with releaseBuffer" into sc-dev
Diffstat (limited to 'services/surfaceflinger/BufferStateLayer.cpp')
-rw-r--r--services/surfaceflinger/BufferStateLayer.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/services/surfaceflinger/BufferStateLayer.cpp b/services/surfaceflinger/BufferStateLayer.cpp
index 5298772956..d68a0e0b47 100644
--- a/services/surfaceflinger/BufferStateLayer.cpp
+++ b/services/surfaceflinger/BufferStateLayer.cpp
@@ -43,11 +43,13 @@ namespace android {
using PresentState = frametimeline::SurfaceFrame::PresentState;
namespace {
void callReleaseBufferCallback(const sp<ITransactionCompletedListener>& listener,
- const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence) {
+ const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence,
+ uint32_t transformHint) {
if (!listener) {
return;
}
- listener->onReleaseBuffer(buffer->getId(), releaseFence ? releaseFence : Fence::NO_FENCE);
+ listener->onReleaseBuffer(buffer->getId(), releaseFence ? releaseFence : Fence::NO_FENCE,
+ transformHint);
}
} // namespace
@@ -72,7 +74,8 @@ BufferStateLayer::~BufferStateLayer() {
// issue with the clone layer trying to use the texture.
if (mBufferInfo.mBuffer != nullptr && !isClone()) {
callReleaseBufferCallback(mDrawingState.releaseBufferListener,
- mBufferInfo.mBuffer->getBuffer(), mBufferInfo.mFence);
+ mBufferInfo.mBuffer->getBuffer(), mBufferInfo.mFence,
+ mTransformHint);
}
}
@@ -427,7 +430,8 @@ bool BufferStateLayer::setBuffer(const std::shared_ptr<renderengine::ExternalTex
// call any release buffer callbacks if set.
callReleaseBufferCallback(mCurrentState.releaseBufferListener,
mCurrentState.buffer->getBuffer(),
- mCurrentState.acquireFence);
+ mCurrentState.acquireFence,
+ mTransformHint);
decrementPendingBufferCount();
if (mCurrentState.bufferSurfaceFrameTX != nullptr) {
addSurfaceFrameDroppedForBuffer(mCurrentState.bufferSurfaceFrameTX);
@@ -946,7 +950,8 @@ void BufferStateLayer::bufferMayChange(const sp<GraphicBuffer>& newBuffer) {
// then we will drop a buffer and should decrement the pending buffer count and
// call any release buffer callbacks if set.
callReleaseBufferCallback(mDrawingState.releaseBufferListener,
- mDrawingState.buffer->getBuffer(), mDrawingState.acquireFence);
+ mDrawingState.buffer->getBuffer(), mDrawingState.acquireFence,
+ mTransformHint);
decrementPendingBufferCount();
}
}