Hey,

On 2018-05-01 08:29, Tomasz Figa wrote:
On Tue, May 1, 2018 at 11:20 AM Rob Herring <r...@kernel.org> wrote:

On Fri, Apr 27, 2018 at 6:57 AM, Robert Foss <robert.f...@collabora.com>
wrote:
From: Rob Herring <r...@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;
     }
}

This does look better to me too, I'll use it for v2.


Rob.


Best regards,
Tomasz

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to