From: Brian Paul Date: Tue, 5 Oct 2010 01:59:23 +0000 (-0600) Subject: swrast: fix choose_depth_texture_level() to respect mipmap filtering state X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fb5e6f88fc426e53af26e98d1c336222a8952cc5;p=mesa.git swrast: fix choose_depth_texture_level() to respect mipmap filtering state NOTE: this is a candidate for the 7.9 branch. --- diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index de694c31bf1..e5ffe8fa5c5 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -2975,11 +2975,16 @@ choose_depth_texture_level(const struct gl_texture_object *tObj, GLfloat lambda) { GLint level; - lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); - - level = (GLint) lambda; - - level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); + if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) { + /* no mipmapping - use base level */ + level = tObj->BaseLevel; + } + else { + /* choose mipmap level */ + lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); + level = (GLint) lambda; + level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); + } return level; }