From: Eric Anholt Date: Mon, 16 Jul 2018 22:22:57 +0000 (-0700) Subject: st/dri: Don't require a dri_format for image creation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=945524ba0e09447754abc755698e32335d5dbc9b;p=mesa.git st/dri: Don't require a dri_format for image creation. Nothing in EGL_KHR_gl_image.txt seems to let us deny creation based on formats, and doing so causes many failures in dEQP-EGL.functional.image.api.* The NONE value we were protecting from only gets looked at in the __DRI_IMAGE_ATTRIB_FORMAT and __DRI_IMAGE_ATTRIB_FOURCC queries, which are used from wayland and gbm (which throw an error cleanly on unknown format) and DMABUF export. Reviewed-by: Marek Olšák --- diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c index e980698cfb6..34205853335 100644 --- a/src/gallium/state_trackers/dri/dri2.c +++ b/src/gallium/state_trackers/dri/dri2.c @@ -1318,7 +1318,7 @@ dri2_query_image(__DRIimage *image, int attrib, int *value) return GL_TRUE; case __DRI_IMAGE_ATTRIB_FOURCC: *value = convert_to_fourcc(image->dri_format); - return GL_TRUE; + return *value != -1; case __DRI_IMAGE_ATTRIB_NUM_PLANES: *value = 1; return GL_TRUE; diff --git a/src/gallium/state_trackers/dri/dri_helpers.c b/src/gallium/state_trackers/dri/dri_helpers.c index 5d42873a208..25095bbce89 100644 --- a/src/gallium/state_trackers/dri/dri_helpers.c +++ b/src/gallium/state_trackers/dri/dri_helpers.c @@ -296,12 +296,6 @@ dri2_create_image_from_renderbuffer2(__DRIcontext *context, img->dri_format = driGLFormatToImageFormat(rb->Format); img->loader_private = loaderPrivate; - if (img->dri_format == __DRI_IMAGE_FORMAT_NONE) { - *error = __DRI_IMAGE_ERROR_BAD_PARAMETER; - free(img); - return NULL; - } - pipe_resource_reference(&img->texture, tex); *error = __DRI_IMAGE_ERROR_SUCCESS; @@ -379,12 +373,6 @@ dri2_create_from_texture(__DRIcontext *context, int target, unsigned texture, img->loader_private = loaderPrivate; - if (img->dri_format == __DRI_IMAGE_FORMAT_NONE) { - *error = __DRI_IMAGE_ERROR_BAD_PARAMETER; - free(img); - return NULL; - } - pipe_resource_reference(&img->texture, tex); *error = __DRI_IMAGE_ERROR_SUCCESS;