| 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 |
| |