}
dri2_dpy->fd = loader_open_device(tbm_bufmgr_device_name);
- } else {
- if (!tbm_drm_helper_get_auth_info(&dri2_dpy->fd, NULL, NULL)) {
-
- /* FIXME: tbm_drm_helper_get_auth_info() does not support the case of
- * display server for now. this code is fallback routine for
- * that Enlightenment Server fails on tbm_drm_helper_get_auth_info.
- * When tbm_drm_helper_get_auth_info() supports display server
- * case, then remove below routine.
- */
-#if 1
+ } else if (tbm_drm_helper_get_master_fd() >= 0) {
+ // display server always has master_fd,
+ // so tbm_bufmgr_fd is the master_fd if it can get the tbm_master_fd.
tbm_bufmgr_device_name = loader_get_device_name_for_fd(tbm_bufmgr_fd);
if (tbm_bufmgr_device_name == NULL) {
err = "DRI2: failed to get tbm_bufmgr device name";
goto cleanup_device;
}
dri2_dpy->fd = loader_open_device(tbm_bufmgr_device_name);
-#else
+ } else {
+ if (!tbm_drm_helper_get_auth_info(&dri2_dpy->fd, NULL, NULL)) {
err = "DRI2: failed to get fd from tbm_drm_helper_get_auth_info()";
goto cleanup_device;
-#endif
}
- }
+ }
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
if (dri2_dpy->driver_name == NULL) {