diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-10-20 22:16:49 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-10-20 22:16:49 -0700 |
commit | 88cadb62d6502f71c939c1b9293df8e16d4694d9 (patch) | |
tree | e884cd49135411d3d8707d4f1460f55a6ae2551b /sdm/libs/hwc2/hwc_layers.cpp | |
parent | 8a3f111be52835b0ae849053a2a3a878a156c2c5 (diff) | |
parent | 1651e5915fed9dcb4a6d084b9be8c3b31be2778a (diff) |
Merge "hwc2: Clean up acquire fence handling"
Diffstat (limited to 'sdm/libs/hwc2/hwc_layers.cpp')
-rw-r--r-- | sdm/libs/hwc2/hwc_layers.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sdm/libs/hwc2/hwc_layers.cpp b/sdm/libs/hwc2/hwc_layers.cpp index 2599f18d..6a33b8f3 100644 --- a/sdm/libs/hwc2/hwc_layers.cpp +++ b/sdm/libs/hwc2/hwc_layers.cpp @@ -184,6 +184,9 @@ HWCLayer::~HWCLayer() { release_fences_.pop(); } if (layer_) { + if (layer_->input_buffer.acquire_fence_fd >= 0) { + close(layer_->input_buffer.acquire_fence_fd); + } delete layer_; } } @@ -251,10 +254,13 @@ HWC2::Error HWCLayer::SetLayerBuffer(buffer_handle_t buffer, int32_t acquire_fen layer_buffer->flags.secure_camera = secure_camera; layer_buffer->flags.secure_display = secure_display; + if (layer_buffer->acquire_fence_fd >= 0) { + close(layer_buffer->acquire_fence_fd); + } + layer_buffer->acquire_fence_fd = acquire_fence; layer_buffer->planes[0].fd = handle->fd; layer_buffer->planes[0].offset = handle->offset; layer_buffer->planes[0].stride = UINT32(handle->width); - layer_buffer->acquire_fence_fd = acquire_fence; layer_buffer->size = handle->size; layer_buffer->buffer_id = reinterpret_cast<uint64_t>(handle); |