r300g: lod min/max clamping should be relative to the base level

This commit is contained in:
Marek Olšák 2010-03-19 04:46:15 +01:00
parent afae089194
commit 12a40dda39

View file

@ -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);