From 926479abf752c69b367d56138569e11cffa7ecf6 Mon Sep 17 00:00:00 2001 From: David Riley Date: Wed, 24 Jul 2019 14:36:17 -0700 Subject: [PATCH] egl: Do not require EGL_MESA_drm_image || EGL_MESA_image_dma_buf_export. ARM GL stacks might not support these extensions, and if buffers are not being exported since they're being imported from externally created buffers, then these are not necessary. Signed-off-by: David Riley Reviewed-by: Chia-I Wu --- src/virgl_egl_context.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/virgl_egl_context.c b/src/virgl_egl_context.c index bb9247d..913af9d 100644 --- a/src/virgl_egl_context.c +++ b/src/virgl_egl_context.c @@ -236,11 +236,6 @@ struct virgl_egl *virgl_egl_init(int fd, bool surfaceless, bool gles) if (virgl_egl_has_extension_in_string(extension_list, "EGL_MESA_image_dma_buf_export")) d->have_mesa_dma_buf_img_export = true; - if (d->have_mesa_drm_image == false && d->have_mesa_dma_buf_img_export == false) { - vrend_printf( "failed to find drm image extensions\n"); - goto fail; - } - d->have_egl_khr_gl_colorspace = virgl_egl_has_extension_in_string(extension_list, "EGL_KHR_gl_colorspace"); @@ -396,9 +391,7 @@ int virgl_egl_get_fd_for_texture(struct virgl_egl *ve, uint32_t tex_id, int *fd) &offset); if (!b) goto out_destroy; - } else { - /* No need to check have_mesa_drm_image, because if we come here - * it is supported (imposed by virgl_egl_init) */ + } else if (ve->have_mesa_drm_image) { EGLint handle; int r; b = eglExportDRMImageMESA(ve->egl_display, @@ -414,6 +407,8 @@ int virgl_egl_get_fd_for_texture(struct virgl_egl *ve, uint32_t tex_id, int *fd) r = drmPrimeHandleToFD(ve->fd, handle, DRM_CLOEXEC, fd); if (r < 0) goto out_destroy; + } else { + goto out_destroy; } ret = 0; out_destroy: