From 1ee2880e865135df451a3dc21ccc8f3631bdba02 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 17 Jan 2013 09:38:02 -0800 Subject: [PATCH] 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 Reviewed-by: Ian Romanick --- src/mesa/main/texobj.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index cb7ac19a804..4cdf68a42e9 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -468,7 +468,7 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, } if (t->MaxLevel < baseLevel) { - incomplete(t, BASE, "MAX_LEVEL (%d) < BASE_LEVEL (%d)", + incomplete(t, MIPMAP, "MAX_LEVEL (%d) < BASE_LEVEL (%d)", t->MaxLevel, baseLevel); return; } @@ -576,7 +576,7 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx, GLuint width, height, depth, face; if (minLevel > maxLevel) { - incomplete(t, BASE, "minLevel > maxLevel"); + incomplete(t, MIPMAP, "minLevel > maxLevel"); return; } -- 2.30.2