From: Changyeon Lee Date: Mon, 26 Aug 2019 02:48:59 +0000 (+0900) Subject: tpl_wayland_egl: set need_to_release flag before commit X-Git-Tag: submit/tizen/20200303.024248~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F66%2F212666%2F2;p=platform%2Fcore%2Fuifw%2Flibtpl-egl.git 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 --- 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,