i965: Reject unsupported formats in glEGLImageTargetTexture2D()
authorChad Versace <chadversary@chromium.org>
Tue, 30 May 2017 16:53:28 +0000 (09:53 -0700)
committerChad Versace <chadversary@chromium.org>
Thu, 1 Jun 2017 19:03:33 +0000 (12:03 -0700)
If the EGLImage's format is not a supported texture format according to
brw_surface_formats.c, then refuse to create the miptree. This follows
the precedent in glEGLImageRenderbufferStorage (implemented by
intel_image_target_renderbuffer_storage), which rejects the EGLImage's
format if is not renderable.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/intel_tex_image.c

index 7208d8eb4ad3bba1ddeb47c39815e4bca97a482e..649b3907d13d87fcf4c0627d3f3ca0118e5ce1c6 100644 (file)
@@ -251,9 +251,13 @@ static struct intel_mipmap_tree *
 create_mt_for_dri_image(struct brw_context *brw,
                         GLenum target, __DRIimage *image)
 {
+   struct gl_context *ctx = &brw->ctx;
    struct intel_mipmap_tree *mt;
    uint32_t draw_x, draw_y;
 
+   if (!ctx->TextureFormatSupported[image->format])
+      return NULL;
+
    /* Disable creation of the texture's aux buffers because the driver exposes
     * no EGL API to manage them. That is, there is no API for resolving the aux
     * buffer's content to the main buffer nor for invalidating the aux buffer's