Fix utc_ecore_evas_pointer_xy_get timeout issue 65/306765/1 accepted/tizen_unified accepted/tizen_unified_toolchain accepted/tizen_unified_x tizen accepted/tizen/unified/20240228.170340 accepted/tizen/unified/toolchain/20240311.070035 accepted/tizen/unified/x/20240304.072423 accepted/tizen/unified/x/20240304.072702
authorXuelian Bai <xuelian.bai@samsung.com>
Tue, 27 Feb 2024 08:38:41 +0000 (16:38 +0800)
committerXuelian Bai <xuelian.bai@samsung.com>
Tue, 27 Feb 2024 08:42:45 +0000 (16:42 +0800)
Set fd_render_gpu as -1 when init, avoid 0 value, or it will be
released by dri2_display_destroy.

Change-Id: I193a49e5fd03520a42aaea964dbf6762b5e60ddb
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
src/egl/drivers/dri2/platform_tizen.c

index b0e9cd0..290a35f 100755 (executable)
@@ -1554,7 +1554,7 @@ dri2_initialize_tizen(_EGLDisplay *disp)
 
    loader_set_logger(_eglLog);
 
-   dri2_dpy = calloc(1, sizeof *dri2_dpy);
+   dri2_dpy = dri2_display_create();
    if (!dri2_dpy)
       return _eglError(EGL_BAD_ALLOC, "eglInitialize");
 
@@ -1677,6 +1677,8 @@ dri2_initialize_tizen(_EGLDisplay *disp)
       dri2_dpy->loader_extensions = tizen_swrast_loader_extensions;
    }
 
+   dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu;
+
    if (!dri2_create_screen(disp)) {
       err = "DRI2: failed to create screen";
       goto cleanup_driver;
@@ -1687,12 +1689,10 @@ dri2_initialize_tizen(_EGLDisplay *disp)
       goto cleanup_driver;
    }
 
-   if(dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) {
-      close(dri2_dpy->fd_render_gpu);
+   if (dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) {
+       close(tbm_bufmgr_fd);
+       tbm_bufmgr_fd = -1;
    }
-   close(tbm_bufmgr_fd);
-   tbm_bufmgr_fd = -1;
-   dri2_dpy->fd_render_gpu = -1;
 
    if (!dri2_setup_extensions(disp)) {
       err = "DRI2: failed to find required DRI extensions";
@@ -1747,6 +1747,14 @@ cleanup_display:
       wl_display_disconnect(disp->PlatformDisplay);
       disp->PlatformDisplay = NULL;
    }
+   if (tbm_bufmgr_fd != -1) {
+        if (dri2_dpy->fd_render_gpu != -1 && dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) {
+            close(dri2_dpy->fd_render_gpu);
+            dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu = -1;
+        }
+        close(tbm_bufmgr_fd);
+        tbm_bufmgr_fd = -1;
+   }
    free(dri2_dpy);
    disp->DriverData = NULL;