Ejemplo n.º 1
0
/**
 * Initialize DRI2 and pipe screen.
 */
static boolean
dri2_display_init_screen(struct native_display *ndpy)
{
   struct dri2_display *dri2dpy = dri2_display(ndpy);
   int fd;

   if (!x11_screen_support(dri2dpy->xscr, X11_SCREEN_EXTENSION_DRI2) ||
       !x11_screen_support(dri2dpy->xscr, X11_SCREEN_EXTENSION_GLX)) {
      _eglLog(_EGL_WARNING, "GLX/DRI2 is not supported");
      return FALSE;
   }

   dri2dpy->dri_driver = x11_screen_probe_dri2(dri2dpy->xscr,
         &dri2dpy->dri_major, &dri2dpy->dri_minor);

   fd = x11_screen_enable_dri2(dri2dpy->xscr,
         dri2_display_invalidate_buffers, &dri2dpy->base);
   if (fd < 0)
      return FALSE;

   dri2dpy->base.screen =
      dri2dpy->event_handler->new_drm_screen(&dri2dpy->base,
            dri2dpy->dri_driver, fd);
   if (!dri2dpy->base.screen) {
      _eglLog(_EGL_DEBUG, "failed to create DRM screen");
      return FALSE;
   }

   return TRUE;
}
Ejemplo n.º 2
0
/**
 * Initialize DRI2 and pipe screen.
 */
static boolean
dri2_display_init_screen(struct native_display *ndpy)
{
    struct dri2_display *dri2dpy = dri2_display(ndpy);
    int fd;

    if (!x11_screen_support(dri2dpy->xscr, X11_SCREEN_EXTENSION_DRI2) ||
            !x11_screen_support(dri2dpy->xscr, X11_SCREEN_EXTENSION_GLX)) {
        _eglLog(_EGL_WARNING, "GLX/DRI2 is not supported");
        return FALSE;
    }

    dri2dpy->dri_driver = x11_screen_probe_dri2(dri2dpy->xscr,
                          &dri2dpy->dri_major, &dri2dpy->dri_minor);

    fd = x11_screen_enable_dri2(dri2dpy->xscr,
                                dri2_display_invalidate_buffers, &dri2dpy->base);
    if (fd < 0)
        return FALSE;

    dri2dpy->base.screen =
        dri2dpy->event_handler->new_drm_screen(&dri2dpy->base,
                dri2dpy->dri_driver, fd);
    if (!dri2dpy->base.screen) {
        _eglLog(_EGL_DEBUG, "failed to create DRM screen");
        return FALSE;
    }

#ifdef HAVE_WAYLAND_BACKEND
    dri2dpy->base.wayland_bufmgr = wayland_drm_bufmgr_create(
                                       dri2_display_authenticate, dri2dpy,
                                       x11_screen_get_device_name(dri2dpy->xscr));

#endif

    return TRUE;
}