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