From 819e49dcfd26995e19bb8a32387af457772f63f6 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Tue, 9 Jul 2024 12:16:01 +0900 Subject: [PATCH] e_hwc_windows: transfer ownership of acquire_fence fd when fd is set to tdm It is better to transfer ownership when fd is set in tdm for fd management. Change-Id: I67f6bb7781a74cecb3f7c6fabae1edb7677157e4 --- src/bin/displaymgr/e_hwc_window.c | 6 +++++- src/bin/displaymgr/e_hwc_windows.c | 7 +++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bin/displaymgr/e_hwc_window.c b/src/bin/displaymgr/e_hwc_window.c index 8589bb2..1ca8d19 100644 --- a/src/bin/displaymgr/e_hwc_window.c +++ b/src/bin/displaymgr/e_hwc_window.c @@ -2051,7 +2051,11 @@ _e_hwc_window_buffer_set(E_Hwc_Window *hwc_window, tbm_surface_h tsurface, 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); } diff --git a/src/bin/displaymgr/e_hwc_windows.c b/src/bin/displaymgr/e_hwc_windows.c index 86d7831..d4a38b9 100644 --- a/src/bin/displaymgr/e_hwc_windows.c +++ b/src/bin/displaymgr/e_hwc_windows.c @@ -813,10 +813,9 @@ _e_hwc_windows_target_buffer_fetch(E_Hwc *hwc) { 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", -- 2.7.4