summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/egl/drivers/dri2/platform_tizen.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/egl/drivers/dri2/platform_tizen.c b/src/egl/drivers/dri2/platform_tizen.c
index 9e54a85647f..ab27b1928a1 100755
--- a/src/egl/drivers/dri2/platform_tizen.c
+++ b/src/egl/drivers/dri2/platform_tizen.c
@@ -1423,6 +1423,7 @@ dri2_initialize_tizen(_EGLDisplay *disp)
_EGLDevice *dev;
struct dri2_egl_display *dri2_dpy;
tpl_display_t *tpl_display = NULL;
+ tpl_backend_type_t tpl_backend = TPL_BACKEND_UNKNOWN;
const char *err;
int tbm_bufmgr_fd = -1;
char *tbm_bufmgr_device_name = NULL;
@@ -1448,8 +1449,14 @@ dri2_initialize_tizen(_EGLDisplay *disp)
dri2_dpy->own_device = 1;
}
- /* TPL_BACKEND_UNKNOWN type make checking runtime type check */
- tpl_display = tpl_display_create(TPL_BACKEND_UNKNOWN, disp->PlatformDisplay);
+ /* Can find the backend type of libtpl-egl through PlatformDisplay */
+ tpl_backend = tpl_display_get_backend_type(disp->PlatformDisplay);
+ /* If tpl_backend is a wayland client, thread backend should be used
+ * to use dri2_surf->out_fence_fd. */
+ if (tpl_backend == TPL_BACKEND_WAYLAND)
+ tpl_backend = TPL_BACKEND_WAYLAND_THREAD;
+
+ tpl_display = tpl_display_create(tpl_backend, disp->PlatformDisplay);
if (!tpl_display) {
err = "DRI2: failed to create tpl_display";
goto cleanup_display;