From: Joonbum Ko Date: Wed, 3 Jun 2020 09:25:45 +0000 (+0900) Subject: Fixed to add release listener before wl_surface_commit. X-Git-Tag: submit/tizen/20200810.080631~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c503bcee9f5e5279aaabff317861fa1f11960dd0;p=platform%2Fcore%2Fuifw%2Flibtpl-egl.git Fixed to add release listener before wl_surface_commit. Change-Id: Iffaac088a0699680bfeb7caefeca7873b71e6e0f Signed-off-by: Joonbum Ko --- diff --git a/src/tpl_wayland_egl_thread.c b/src/tpl_wayland_egl_thread.c index 291afa0..22795ca 100755 --- a/src/tpl_wayland_egl_thread.c +++ b/src/tpl_wayland_egl_thread.c @@ -1811,14 +1811,6 @@ _twe_surface_set_wl_buffer_info(twe_wl_surf_source *surf_source, g_mutex_unlock(&surf_source->surf_mutex); } - if (surf_source->disp_source->use_explicit_sync && - surf_source->use_surface_sync) { - buf_info->buffer_release = - zwp_linux_surface_synchronization_v1_get_release(surf_source->surface_sync); - zwp_linux_buffer_release_v1_add_listener( - buf_info->buffer_release, &explicit_sync_release_listner, tbm_surface); - } - TRACE_MARK("[SET_BUFFER_INFO] BO(%d)", tbm_bo_export(tbm_surface_internal_get_bo(tbm_surface, 0))); @@ -1912,17 +1904,6 @@ _twe_surface_set_wl_buffer_info(twe_wl_surf_source *surf_source, buf_info->sync_timeline); } - if (surf_source->disp_source->use_explicit_sync && - surf_source->use_surface_sync) { - buf_info->buffer_release = - zwp_linux_surface_synchronization_v1_get_release(surf_source->surface_sync); - zwp_linux_buffer_release_v1_add_listener( - buf_info->buffer_release, &explicit_sync_release_listner, tbm_surface); - } else { - wl_buffer_add_listener((void *)buf_info->wl_buffer, - &wl_buffer_release_listener, tbm_surface); - } - tbm_surface_internal_add_user_data(tbm_surface, KEY_BUFFER_INFO, (tbm_data_free)__cb_twe_buffer_free_callback); tbm_surface_internal_set_user_data(tbm_surface, KEY_BUFFER_INFO, @@ -2463,6 +2444,20 @@ _twe_thread_wl_surface_commit(twe_wl_surf_source *surf_source, buf_info->need_to_release = TPL_TRUE; + if (surf_source->disp_source->use_explicit_sync && + surf_source->use_surface_sync) { + buf_info->buffer_release = + zwp_linux_surface_synchronization_v1_get_release(surf_source->surface_sync); + if (!buf_info->buffer_release) { + TPL_ERR("Failed to get buffer_release. twe_surface(%p)", surf_source); + } else { + zwp_linux_buffer_release_v1_add_listener( + buf_info->buffer_release, &explicit_sync_release_listner, tbm_surface); + TPL_DEBUG("add explicit_sync_release_listener."); + } + + } + wl_surface_commit(wl_surface); wl_display_flush(surf_source->disp_source->disp);