i915g: Fix maxlod computation.
authorStéphane Marchesin <marcheu@chromium.org>
Sat, 22 Nov 2014 08:09:24 +0000 (00:09 -0800)
committerStéphane Marchesin <marcheu@chromium.org>
Sat, 22 Nov 2014 08:13:39 +0000 (00:13 -0800)
Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
src/gallium/drivers/i915/i915_state_sampler.c

index eb62479b975ef70500c35befba4fb6096e71833d..c874361dfd9659b3adb384babaf37debf1696a7e 100644 (file)
@@ -304,11 +304,11 @@ static void update_map(struct i915_context *i915,
 {
    const struct pipe_resource *pt = &tex->b.b;
    uint width = pt->width0, height = pt->height0, depth = pt->depth0;
-   const uint num_levels = pt->last_level;
-   uint format, pitch;
-   unsigned max_lod = num_levels * 4;
    int first_level = view->u.tex.first_level;
+   const uint num_levels = pt->last_level - first_level;
+   unsigned max_lod = num_levels * 4;
    bool is_npot = (!util_is_power_of_two(pt->width0) || !util_is_power_of_two(pt->height0)); 
+   uint format, pitch;
 
    /*
     * This is a bit messy. i915 doesn't support NPOT with mipmaps, but we can