blob: 8320a7e3a9b1bd2074ea9a394e99992bdd60661b [file] [log] [blame]
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