diff --git a/msm8998/sdm/libs/hwc2/hwc_layers.cpp b/msm8998/sdm/libs/hwc2/hwc_layers.cpp index 54d9e9c3..4ceaa632 100644 --- a/msm8998/sdm/libs/hwc2/hwc_layers.cpp +++ b/msm8998/sdm/libs/hwc2/hwc_layers.cpp @@ -256,10 +256,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 = ion_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(handle); layer_buffer->fb_id = 0;