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)));
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,
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);