st/mesa: an incomplete texture may have a zero-size first image
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 24 Jun 2016 14:35:36 +0000 (16:35 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 1 Jul 2016 15:54:40 +0000 (17:54 +0200)
Fixes a regression introduced by commit 42624ea83 which triggered
an assertion in
dEQP-GLES2.functional.texture.completeness.cube.not_positive_level_0

While stImage must have a non-zero size as verified by the caller, we also
look at the size of the base image in an attempt to make a better guess at
the level0 size (this is important when the base image size is odd). However,
the base image may have a zero size even when it exists.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96629
Cc: 12.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/mesa/state_tracker/st_cb_texture.c

index 088ac9e0ef6b09b9662c7e1f9d8b2ca67733802c..1474d973861ffe8acacbc78450731f9ebf49c101 100644 (file)
@@ -472,6 +472,9 @@ guess_and_alloc_texture(struct st_context *st,
     */
    firstImage = _mesa_base_tex_image(&stObj->base);
    if (firstImage &&
+       firstImage->Width2 > 0 &&
+       firstImage->Height2 > 0 &&
+       firstImage->Depth2 > 0 &&
        guess_base_level_size(stObj->base.Target,
                              firstImage->Width2,
                              firstImage->Height2,