From: Henri Verbeet Date: Mon, 17 Jan 2011 21:03:30 +0000 (+0100) Subject: st/mesa: Clamp min_lod to the max miplevel as well. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=79db70bd8aa04e19a4e1b9ee98eb568d90bb6d62;p=mesa.git st/mesa: Clamp min_lod to the max miplevel as well. Otherwise min_lod can potentially be larger than the clamped max_lod. The code that follows will swap min_lod and max_lod in that case, resulting in a max_lod larger than MAX_LEVEL. Signed-off-by: Brian Paul --- diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index 2b53741460f..19d41e7061a 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -166,7 +166,9 @@ update_samplers(struct st_context *st) sampler->lod_bias = st->ctx->Texture.Unit[texUnit].LodBias + texobj->LodBias; - sampler->min_lod = MAX2(0.0f, texobj->MinLod); + sampler->min_lod = CLAMP(texobj->MinLod, + 0.0f, + (GLfloat) texobj->MaxLevel - texobj->BaseLevel); sampler->max_lod = MIN2((GLfloat) texobj->MaxLevel - texobj->BaseLevel, texobj->MaxLod); if (sampler->max_lod < sampler->min_lod) {