[Mesa-dev] [PATCH v1 1/2] egl/android: #ifdef out flink name support

Tomasz Figa tfiga at chromium.org
Tue May 1 06:29:42 UTC 2018


On Tue, May 1, 2018 at 11:20 AM Rob Herring <robh at kernel.org> wrote:

> On Fri, Apr 27, 2018 at 6:57 AM, Robert Foss <robert.foss at collabora.com>
wrote:
> > From: Rob Herring <robh at kernel.org>
[snip]
> > @@ -1228,20 +1254,31 @@ dri2_initialize_android(_EGLDriver *drv,
_EGLDisplay *disp)
> >
> >     dri2_dpy->is_render_node = drmGetNodeTypeFromFd(dri2_dpy->fd) ==
DRM_NODE_RENDER;
> >
> > -   /* render nodes cannot use Gem names, and thus do not support
> > -    * the __DRI_DRI2_LOADER extension */
> >     if (!dri2_dpy->is_render_node) {
> > +#ifdef HAVE_DRM_GRALLOC
> >        dri2_dpy->loader_extensions = droid_dri2_loader_extensions;
> >        if (!dri2_load_driver(disp)) {
> >           err = "DRI2: failed to load driver";
> >           goto cleanup;
> >        }
> >     } else {
> > +      /* render nodes cannot use Gem names, and thus do not support
> > +       * the __DRI_DRI2_LOADER extension */

I think we can replace this comment with something properly reflecting the
bad nature of this code. See below.

> >        dri2_dpy->loader_extensions = droid_image_loader_extensions;
> >        if (!dri2_load_driver_dri3(disp)) {
> >           err = "DRI3: failed to load driver";
> >           goto cleanup;
> >        }
> > +#else
> > +      err = "DRI2: handle is not for a render node";
> > +      goto cleanup;
> > +   }
> > +
> > +   dri2_dpy->loader_extensions = droid_image_loader_extensions;
> > +   if (!dri2_load_driver_dri3(disp)) {

> Do we really need this twice?

Yeah, I think we could do with something like below:

if (!dri2_dpy->is_render_node) {
#ifdef HAVE_DRM_GRALLOC
    /* Handle control nodes using __DRI_DRI2_LOADER extension and GEM names
     * for backwards compatibility with drm_gralloc. (Do not use on new
systems.) */
    dri2_dpy->loader_extensions = droid_dri2_loader_extensions;
    if (!dri2_load_driver(disp)) {
       err = "DRI2: failed to load driver";
       goto cleanup;
    }
#else
    err = "DRI2: handle is not for a render node";
    goto cleanup;
#endif
} else {
    dri2_dpy->loader_extensions = droid_image_loader_extensions;
    if (!dri2_load_driver_dri3(disp)) {
       err = "DRI3: failed to load driver";
       goto cleanup;
    }
}

Best regards,
Tomasz


More information about the mesa-dev mailing list