diff options
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 9 |
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 |