summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_gen_mipmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker/st_gen_mipmap.c')
-rw-r--r--src/mesa/state_tracker/st_gen_mipmap.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/mesa/state_tracker/st_gen_mipmap.c b/src/mesa/state_tracker/st_gen_mipmap.c
index d6b024d8b8..b8b75c7de6 100644
--- a/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/src/mesa/state_tracker/st_gen_mipmap.c
@@ -104,14 +104,8 @@ decompress_image(enum pipe_format format,
unsigned width, unsigned height)
{
const struct util_format_description *desc = util_format_description(format);
- const uint bw = util_format_get_blockwidth(format);
- const uint src_stride = align(width, bw) / util_format_get_blocksize(format);
const uint dst_stride = 4 * width;
-
- /*
- printf("decompress %s %d x %d %d -> %d\n",
- util_format_name(format), width, height, src_stride, dst_stride);
- */
+ const uint src_stride = util_format_get_stride(format, width);
desc->unpack_rgba_8unorm(dst, dst_stride, src, src_stride, width, height);
}
@@ -127,14 +121,8 @@ compress_image(enum pipe_format format,
unsigned width, unsigned height)
{
const struct util_format_description *desc = util_format_description(format);
- const uint bw = util_format_get_blockwidth(format);
+ const uint dst_stride = util_format_get_stride(format, width);
const uint src_stride = 4 * width;
- const uint dst_stride = align(width, bw) / util_format_get_blocksize(format);
-
- /*
- printf("compress %s %d x %d %d -> %d\n",
- util_format_name(format), width, height, src_stride, dst_stride);
- */
desc->pack_rgba_8unorm(dst, dst_stride, src, src_stride, width, height);
}
@@ -389,7 +377,9 @@ st_generate_mipmap(GLcontext *ctx, GLenum target,
dstImage->TexFormat = srcImage->TexFormat;
- stImage = (struct st_texture_image *) dstImage;
+ stImage = st_texture_image(dstImage);
+ stImage->level = dstLevel;
+
pipe_resource_reference(&stImage->pt, pt);
}
}