diff options
Diffstat (limited to 'src/mesa/state_tracker/st_gen_mipmap.c')
-rw-r--r-- | src/mesa/state_tracker/st_gen_mipmap.c | 20 |
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); } } |