summaryrefslogtreecommitdiff
path: root/sdm/libs/hwc2/hwc_layers.cpp
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-10-20 22:16:49 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-10-20 22:16:49 -0700
commit88cadb62d6502f71c939c1b9293df8e16d4694d9 (patch)
treee884cd49135411d3d8707d4f1460f55a6ae2551b /sdm/libs/hwc2/hwc_layers.cpp
parent8a3f111be52835b0ae849053a2a3a878a156c2c5 (diff)
parent1651e5915fed9dcb4a6d084b9be8c3b31be2778a (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.cpp8
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);