struct tizen_surface_shm *tss; /* used for surface buffer_flush */
struct wp_presentation *presentation;
struct zwp_linux_explicit_synchronization_v1 *explicit_sync;
+ tpl_bool_t use_explicit_sync;
struct {
int min_buffer;
int max_buffer;
&wayland_vulkan_interface,
version);
} else if (!strcmp(interface, wp_presentation_interface.name)) {
- disp_source->presentation =
+ disp_source->presentation =
wl_registry_bind(wl_registry,
name, &wp_presentation_interface, 1);
TPL_DEBUG("bind wp_presentation_interface");
} else if (strcmp(interface, "zwp_linux_explicit_synchronization_v1") == 0) {
- disp_source->explicit_sync =
+ disp_source->explicit_sync =
wl_registry_bind(wl_registry, name,
&zwp_linux_explicit_synchronization_v1_interface, 1);
+ disp_source->use_explicit_sync = TPL_TRUE;
TPL_DEBUG("bind zwp_linux_explicit_synchronization_v1_interface");
}
}
source->is_vulkan_dpy = TPL_FALSE;
}
+ /* It will be changed to TPL_TRUE when zwp_linux_explicit_synchronization_v1
+ * succeeds to bind. */
+ source->use_explicit_sync = TPL_FALSE;
+
source->surface_capabilities.min_buffer = 2;
source->surface_capabilities.max_buffer = VK_CLIENT_QUEUE_SIZE;
source->surface_capabilities.present_modes =
_twe_surface_buffer_flusher_init(source);
- if (disp_source->explicit_sync) {
+ if (disp_source->explicit_sync && disp_source->use_explicit_sync) {
source->surface_sync =
zwp_linux_explicit_synchronization_v1_get_synchronization(
disp_source->explicit_sync, source->surf);