diff options
author | Henri Verbeet <[email protected]> | 2011-01-17 22:03:30 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-04-08 04:45:03 +0200 |
commit | 79db70bd8aa04e19a4e1b9ee98eb568d90bb6d62 (patch) | |
tree | 437600d27bb7af70171e0bce1451c9e250f0a3c5 | |
parent | 2ecb73379e4d88873cbe1cafdd056f7f687ea743 (diff) |
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 <[email protected]>
-rw-r--r-- | src/mesa/state_tracker/st_atom_sampler.c | 4 |
1 files changed, 3 insertions, 1 deletions
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) { |