summaryrefslogtreecommitdiff
path: root/src/egl/drivers
diff options
context:
space:
mode:
authorKristian H. Kristensen <hoegsberg@google.com>2020-08-10 18:44:34 -0700
committerMarge Bot <eric+marge@anholt.net>2020-08-18 17:20:16 +0000
commitacb235c0c8a4100b0a10a54969c94e300b6005c3 (patch)
tree33967d2a0214a1be4236b82aef13215696408faa /src/egl/drivers
parentcad9d42bb4ec7166c860d8377520fd1bb4dd37f4 (diff)
egl/android: Use droid_create_image_from_prime_fds() in get_back_bo()
This function wants to create a __DRIimage for an ANativeWindowBuffer, which is mostly the same logic as when we create an EGLImage for an ANativeWindowBuffer. Reuse droid_create_image_from_prime_fds(). Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Diffstat (limited to 'src/egl/drivers')
-rw-r--r--src/egl/drivers/dri2/platform_android.c33
1 files changed, 2 insertions, 31 deletions
diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
index b59853f5533..9621b1b9c1a 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -717,11 +717,7 @@ get_front_bo(struct dri2_egl_surface *dri2_surf, unsigned int format)
static int
get_back_bo(struct dri2_egl_surface *dri2_surf)
{
- struct dri2_egl_display *dri2_dpy =
- dri2_egl_display(dri2_surf->base.Resource.Display);
- int fourcc, pitch;
- int offset = 0, fds[3];
- unsigned num_fds;
+ _EGLDisplay *disp = dri2_surf->base.Resource.Display;
if (dri2_surf->dri_image_back)
return 0;
@@ -732,33 +728,8 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
return -1;
}
- num_fds = get_native_buffer_fds(dri2_surf->buffer, fds);
- if (num_fds == 0) {
- _eglLog(_EGL_WARNING, "Could not get native buffer FD");
- return -1;
- }
-
- fourcc = get_fourcc(dri2_surf->buffer->format);
-
- pitch = dri2_surf->buffer->stride *
- get_format_bpp(dri2_surf->buffer->format);
-
- if (fourcc == -1 || pitch == 0) {
- _eglLog(_EGL_WARNING, "Invalid buffer fourcc(%x) or pitch(%d)",
- fourcc, pitch);
- return -1;
- }
-
dri2_surf->dri_image_back =
- dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen,
- dri2_surf->base.Width,
- dri2_surf->base.Height,
- fourcc,
- fds,
- num_fds,
- &pitch,
- &offset,
- dri2_surf);
+ droid_create_image_from_prime_fds(disp, dri2_surf->buffer);
if (!dri2_surf->dri_image_back) {
_eglLog(_EGL_WARNING, "failed to create DRI image from FD");
return -1;