It is better to transfer ownership when fd is set in tdm for fd management.
Change-Id: I67f6bb7781a74cecb3f7c6fabae1edb7677157e4
if ((hwc_window->ec) && e_hwc_windows_fence_enabled_get(hwc_window->hwc))
{
acquire_fence_fd = e_client_explicit_sync_acquire_fence_fd_get(hwc_window->ec);
- error = tdm_hwc_window_set_acquire_fence(hwc_window->thwc_window, acquire_fence_fd);
+ if (acquire_fence_fd >= 0)
+ error = tdm_hwc_window_set_acquire_fence(hwc_window->thwc_window, dup(acquire_fence_fd));
+ else
+ error = tdm_hwc_window_set_acquire_fence(hwc_window->thwc_window, -1);
+
EINA_SAFETY_ON_TRUE_RETURN_VAL(error != TDM_ERROR_NONE, EINA_FALSE);
}
{
int fence = e_egl_sync_fence_fd_dup(root_target_hwc_window->end_render_sync);
if (fence >= 0)
- {
- tdm_hwc_set_client_target_acquire_fence(thwc, fence);
- close(fence);
- }
+ tdm_hwc_set_client_target_acquire_fence(thwc, fence);
+ else
+ tdm_hwc_set_client_target_acquire_fence(thwc, -1);
}
EHWSTRACE("FET {%s} ts:%p state:%s",