summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_state_derived.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2010-03-19 04:46:15 +0100
committerMarek Olšák <maraeo@gmail.com>2010-03-19 04:46:15 +0100
commit12a40dda394bd14e31c679551bc5abc8b601fdbf (patch)
treeecaff435432ef828a067626b1546cc48503addb1 /src/gallium/drivers/r300/r300_state_derived.c
parentafae0891949b72a2ede2a3b6a01d4d6bcf4ceae0 (diff)
r300g: lod min/max clamping should be relative to the base level
Diffstat (limited to 'src/gallium/drivers/r300/r300_state_derived.c')
-rw-r--r--src/gallium/drivers/r300/r300_state_derived.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c
index 85947353ee..8178d55dc9 100644
--- a/src/gallium/drivers/r300/r300_state_derived.c
+++ b/src/gallium/drivers/r300/r300_state_derived.c
@@ -375,9 +375,9 @@ static void r300_merge_textures_and_samplers(struct r300_context* r300)
} else {
/* determine min/max levels */
/* the MAX_MIP level is the largest (finest) one */
- max_level = MIN3(sampler->max_lod, tex->tex.last_level,
- view->last_level);
- min_level = MIN2(MAX2(sampler->min_lod, view->first_level),
+ max_level = MIN3(sampler->max_lod + view->first_level,
+ tex->tex.last_level, view->last_level);
+ min_level = MIN2(sampler->min_lod + view->first_level,
max_level);
texstate->format[0] |= R300_TX_NUM_LEVELS(max_level);
texstate->filter[0] |= R300_TX_MAX_MIP_LEVEL(min_level);