| From c55d7757f0f16d52675e9178b5fca43a5ad03f30 Mon Sep 17 00:00:00 2001 |
| From: "Kristian H. Kristensen" <hoegsberg@google.com> |
| Date: Thu, 6 Aug 2020 16:45:28 -0700 |
| Subject: [PATCH 02/11] egl/android: Look up prime fds in |
| droid_create_image_from_prime_fds() |
| |
| We always need to look them up before calling this function, so move |
| the lookup into the function to consolidate the code. |
| |
| Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055> |
| --- |
| src/egl/drivers/dri2/platform_android.c | 22 ++++++++++------------ |
| 1 file changed, 10 insertions(+), 12 deletions(-) |
| |
| diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c |
| index 3814187724a..646a7333755 100644 |
| --- a/src/egl/drivers/dri2/platform_android.c |
| +++ b/src/egl/drivers/dri2/platform_android.c |
| @@ -877,11 +877,17 @@ droid_create_image_from_prime_fds_yuv(_EGLDisplay *disp, _EGLContext *ctx, |
| |
| static __DRIimage * |
| droid_create_image_from_prime_fds(_EGLDisplay *disp, _EGLContext *ctx, |
| - struct ANativeWindowBuffer *buf, int num_fds, int fds[3]) |
| + struct ANativeWindowBuffer *buf) |
| { |
| struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); |
| int pitches[4] = { 0 }, offsets[4] = { 0 }; |
| unsigned error; |
| + int num_fds; |
| + int fds[3]; |
| + |
| + num_fds = get_native_buffer_fds(buf, fds); |
| + if (num_fds == 0) |
| + return NULL; |
| |
| if (is_yuv(buf->format)) { |
| __DRIimage *image; |
| @@ -1005,9 +1011,6 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, |
| _EGLContext *ctx, |
| struct ANativeWindowBuffer *buf) |
| { |
| - int fds[3]; |
| - unsigned num_fds; |
| - |
| if (ctx != NULL) { |
| /* From the EGL_ANDROID_image_native_buffer spec: |
| * |
| @@ -1026,15 +1029,10 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, |
| return NULL; |
| } |
| |
| - num_fds = get_native_buffer_fds(buf, fds); |
| - if (num_fds > 0) { |
| - __DRIimage *dri_image = |
| - droid_create_image_from_prime_fds(disp, ctx, buf, num_fds, fds); |
| - if (!dri_image) |
| - return EGL_NO_IMAGE_KHR; |
| - |
| + __DRIimage *dri_image = |
| + droid_create_image_from_prime_fds(disp, ctx, buf); |
| + if (dri_image) |
| return dri2_create_image_from_dri(disp, dri_image); |
| - } |
| |
| #ifdef HAVE_DRM_GRALLOC |
| return droid_create_image_from_name(disp, ctx, buf); |
| -- |
| 2.29.2.684.gfbc64c5ab5-goog |
| |