From 34c518be52958c9facd294955a81286293a6ed0b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 5 Oct 2010 14:34:58 -0600 Subject: [PATCH 01/20] swrast: fix choose_depth_texture_level() to respect mipmap filtering state NOTE: this is a candidate for the 7.9 branch. (cherry picked from commit fb5e6f88fc426e53af26e98d1c336222a8952cc5) --- src/mesa/swrast/s_texfilter.c | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index 3fc554c..198f0e2 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -2972,11 +2972,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; } -- 1.7.3