mesa: Only mark textures as mipmap incomplete on MAX_LEVEL issues.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 17 Jan 2013 17:38:02 +0000 (09:38 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 18 Jan 2013 19:31:27 +0000 (11:31 -0800)
commit1ee2880e865135df451a3dc21ccc8f3631bdba02
tree06d33d1f703fe3cc3ed396e8e53b6ca8b211e7cc
parentf0dbd9255b5813d1567e1f09266f80e35dcbeb70
mesa: Only mark textures as mipmap incomplete on MAX_LEVEL issues.

According to the OpenGL 3.2 Core Profile specification, section 3.8.12:

"For one-, two-, and three-dimensional and one-and two-dimensional array
 textures, a texture is mipmap complete if all of the following
 conditions hold true:
 - [...]
 - levelbase <= levelmax [...]

 Using the preceding definitions, a texture is complete unless any of
 the following conditions hold true:
 - [...]
 - The minification filter requires a mipmap (is neither NEAREST nor
   LINEAR), and the texture is not mipmap complete."

(This text also appears in all GL >= 3.2 specs and the ES 3.0 spec.)

From this, we see that levelbase <= levelmax should only affect mipmap
completeness, not base-level completeness.

Prior versions of GL did not have the notion of mipmap completeness,
simply calling the texture incomplete in this case.  But I don't think
we really care.

Fixes es3conform's sgis_texture_lod_basic_completeness test.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <idr@freedesktop.org>
src/mesa/main/texobj.c