From 4b9dbe0bed5dac7f7a669b7cd1e8b28a5dee05de Mon Sep 17 00:00:00 2001
From: "Kristian H. Kristensen" <hoegsberg@google.com>
Date: Thu, 6 Aug 2020 17:39:47 -0700
Subject: [PATCH 04/11] egl/android: Simplify droid_create_image_from_name()
 path

This can now return an __DRIimage which we'll wrap in the shared code
in dri2_create_image_android_native_buffer().

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
---
 src/egl/drivers/dri2/platform_android.c | 29 +++++++------------------
 1 file changed, 8 insertions(+), 21 deletions(-)

diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
index 6bcc3143606..01a62cf0d7b 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -940,7 +940,7 @@ droid_create_image_from_name(_EGLDisplay *disp,
                              struct ANativeWindowBuffer *buf)
 {
    struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
-   struct dri2_egl_image *dri2_img;
+   __DRIimage *dri_image;
    int name;
    int format;
 
@@ -954,15 +954,7 @@ droid_create_image_from_name(_EGLDisplay *disp,
    if (format == -1)
        return NULL;
 
-   dri2_img = calloc(1, sizeof(*dri2_img));
-   if (!dri2_img) {
-      _eglError(EGL_BAD_ALLOC, "droid_create_image_mesa_drm");
-      return NULL;
-   }
-
-   _eglInitImage(&dri2_img->base, disp);
-
-   dri2_img->dri_image =
+   return
       dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
 					   buf->width,
 					   buf->height,
@@ -970,13 +962,6 @@ droid_create_image_from_name(_EGLDisplay *disp,
 					   name,
 					   buf->stride,
 					   dri2_img);
-   if (!dri2_img->dri_image) {
-      free(dri2_img);
-      _eglError(EGL_BAD_ALLOC, "droid_create_image_mesa_drm");
-      return NULL;
-   }
-
-   return &dri2_img->base;
 }
 #endif /* HAVE_DRM_GRALLOC */
 
@@ -1031,14 +1016,16 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp,
 
    __DRIimage *dri_image =
       droid_create_image_from_prime_fds(disp, buf);
+
+#ifdef HAVE_DRM_GRALLOC
+   if (dri_image == NULL)
+      dri_image = droid_create_image_from_name(disp, buf);
+#endif
+
    if (dri_image)
       return dri2_create_image_from_dri(disp, dri_image);
 
-#ifdef HAVE_DRM_GRALLOC
-   return droid_create_image_from_name(disp, buf);
-#else
    return NULL;
-#endif
 }
 
 static _EGLImage *
-- 
2.29.2.684.gfbc64c5ab5-goog

