summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/Layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
-rw-r--r--services/surfaceflinger/Layer.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 5b9327d..0d1cb45 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -300,20 +300,21 @@ void Layer::setPerFrameData(HWComposer::HWCLayerInterface& layer) {
// NOTE: buffer can be NULL if the client never drew into this
// layer yet, or if we ran out of memory
layer.setBuffer(buffer);
+}
+void Layer::setAcquireFence(HWComposer::HWCLayerInterface& layer) {
+ int fenceFd = -1;
if (mNeedHwcFence) {
sp<Fence> fence = mSurfaceTexture->getCurrentFence();
if (fence.get()) {
- int fenceFd = fence->dup();
+ fenceFd = fence->dup();
if (fenceFd == -1) {
ALOGW("failed to dup layer fence, skipping sync: %d", errno);
}
- layer.setAcquireFenceFd(fenceFd);
}
mNeedHwcFence = false;
- } else {
- layer.setAcquireFenceFd(-1);
}
+ layer.setAcquireFenceFd(fenceFd);
}
void Layer::onDraw(const DisplayHardware& hw, const Region& clip) const