mesa: Don't call GenerateMipmap if Width or Height == 0.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 22 Jul 2016 05:13:38 +0000 (22:13 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 23 Jul 2016 03:31:20 +0000 (20:31 -0700)
One of the WebGL 2.0 conformance tests is trying to call
glGenerateMipmaps with a width and height of 0.  With the meta
implementation, this generates a "framebuffer attachment incomplete"
status, and falls back to the CPU path, calling MapTextureImage.

Except that there's no actual texture to map, and we assert fail.

There's no work to do in this case.  The test expects it to succeed,
so just return early with no error and avoid hassling the driver.

Cc: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96911
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/main/genmipmap.c

index c952c4fda54bdce19eba453242fa654a74c9399c..97d3c62b7bbc397f257aeeeeded0279657f99236 100644 (file)
@@ -149,6 +149,11 @@ _mesa_generate_texture_mipmap(struct gl_context *ctx,
       return;
    }
 
+   if (srcImage->Width == 0 || srcImage->Height == 0) {
+      _mesa_unlock_texture(ctx, texObj);
+      return;
+   }
+
    if (target == GL_TEXTURE_CUBE_MAP) {
       GLuint face;
       for (face = 0; face < 6; face++) {