From 30f807920870e70360bffaa3a135e09d8b5ea34d Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Mon, 26 Aug 2019 11:48:59 +0900 Subject: [PATCH] tpl_wayland_egl: set need_to_release flag before commit it is possible that get release event before need_to_rlease flag is set Change-Id: I2010350256cbaa90eaa9f506acd1748f1bd247b6 --- src/tpl_wayland_egl.c | 3 ++- src/tpl_wayland_egl_thread.c | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/tpl_wayland_egl.c b/src/tpl_wayland_egl.c index 54f9402..70e37a5 100644 --- a/src/tpl_wayland_egl.c +++ b/src/tpl_wayland_egl.c @@ -929,10 +929,11 @@ __tpl_wayland_egl_surface_commit(tpl_surface_t *surface, wayland_tbm_client_set_buffer_serial(wayland_egl_display->wl_tbm_client, (void *)wayland_egl_buffer->wl_proxy, wayland_egl_buffer->serial); - wl_surface_commit(wl_egl_window->surface); wayland_egl_buffer->need_to_release = TPL_TRUE; + wl_surface_commit(wl_egl_window->surface); + wl_display_flush(wayland_egl_display->wl_dpy); TPL_LOG_B("WL_EGL", diff --git a/src/tpl_wayland_egl_thread.c b/src/tpl_wayland_egl_thread.c index f3c361f..1c5d5bf 100644 --- a/src/tpl_wayland_egl_thread.c +++ b/src/tpl_wayland_egl_thread.c @@ -1810,6 +1810,10 @@ _twe_thread_wl_vk_surface_commit(twe_wl_surf_source *surf_source, } } } + + /* Dependent on wl_buffer release event. */ + buf_info->need_to_release = TPL_TRUE; + wl_surface_commit(wl_surface); TRACE_MARK("[COMMIT] BO(%d)", @@ -1847,10 +1851,6 @@ _twe_thread_wl_vk_surface_commit(twe_wl_surf_source *surf_source, TPL_ERR("Failed to release tbm_surface(%p) when vk_surface_commit.", tbm_surface); } - - /* Dependent on wl_buffer release event. */ - buf_info->need_to_release = TPL_TRUE; - } static void @@ -1928,13 +1928,15 @@ _twe_thread_wl_surface_commit(twe_wl_surf_source *surf_source, wayland_tbm_client_set_buffer_serial(disp_source->wl_tbm_client, (void *)buf_info->wl_buffer, buf_info->serial); + + buf_info->need_to_release = TPL_TRUE; + wl_surface_commit(wl_surface); TRACE_ASYNC_BEGIN((int)tbm_surface, "[COMMIT ~ RELEASE] BO(%d)", tbm_bo_export(tbm_surface_internal_get_bo(tbm_surface, 0))); buf_info->need_to_commit = TPL_FALSE; - buf_info->need_to_release = TPL_TRUE; TPL_LOG_T(BACKEND, "[COMMIT] wl_buffer(%p) tbm_surface(%p) bo(%d)", buf_info->wl_buffer, tbm_surface, -- 2.7.4