texobj: Fix the completeness checks for cube textures
authorNeil Roberts <neil@linux.intel.com>
Thu, 21 Jan 2016 17:12:29 +0000 (17:12 +0000)
committerNeil Roberts <neil@linux.intel.com>
Thu, 21 Jan 2016 21:45:18 +0000 (21:45 +0000)
commit666d96d1697fc9a1452519285758cc16240290d2
tree4c807f9a34952a402fa72414791829d130e55ef4
parent0153ff8379be789262ad9cd636080d92b77becad
texobj: Fix the completeness checks for cube textures

According to the GL 1.4 spec section 3.8.10, a cubemap texture is only
complete if:

• The level base arrays of each of the six texture images making up
  the cube map have identical, positive, and square dimensions.
• The level base arrays were each specified with the same internal
  format.
• The level base arrays each have the same border width.

Previously the texture completeness code was only checking the first
point. This patch makes it additionally check the other two.

This fixes the following two dEQP tests:

deqp-gles2.functional.texture.completeness.cube.format_mismatch_rgba_rgb_level_0_neg_z
deqp-gles2.functional.texture.completeness.cube.format_mismatch_rgb_rgba_level_0_pos_z

And also this Piglit test:

spec/!opengl 2.0/incomplete-cubemap-format

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93792
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/texobj.c