r300g: disable the MIP filter for NPOT textures

Safety first.
This commit is contained in:
Marek Olšák
2010-01-16 00:48:53 +01:00
committed by Corbin Simpson
parent 37897a65e2
commit 21f3bbf149
+12 -6
View File
@@ -705,12 +705,18 @@ void r300_emit_texture(struct r300_context* r300,
filter0 |= R300_TX_WRAP_T(R300_TX_CLAMP_TO_EDGE);
}
/* determine min/max levels */
/* the MAX_MIP level is the largest (finest) one */
max_level = MIN2(sampler->max_lod, tex->tex.last_level);
min_level = MIN2(sampler->min_lod, max_level);
format0 |= R300_TX_NUM_LEVELS(max_level);
filter0 |= R300_TX_MAX_MIP_LEVEL(min_level);
if (tex->is_npot) {
/* NPOT textures don't support mip filter, unfortunately.
* This prevents incorrect rendering. */
filter0 &= ~R300_TX_MIN_FILTER_MIP_MASK;
} else {
/* determine min/max levels */
/* the MAX_MIP level is the largest (finest) one */
max_level = MIN2(sampler->max_lod, tex->tex.last_level);
min_level = MIN2(sampler->min_lod, max_level);
format0 |= R300_TX_NUM_LEVELS(max_level);
filter0 |= R300_TX_MAX_MIP_LEVEL(min_level);
}
BEGIN_CS(16);
OUT_CS_REG(R300_TX_FILTER0_0 + (offset * 4), filter0 |