From: Roland Scheidegger Date: Wed, 25 Oct 2017 00:39:20 +0000 (+0200) Subject: gallium/util: remove some block alignment assertions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=20c77ae6390451a74e2463f02c49bd7fec3dd29c;p=mesa.git gallium/util: remove some block alignment assertions These assertions were revisited a couple of times in the past, and they still weren't quite right. The problem I was seeing (with some other state tracker) was a copy between two 512x512 s3tc textures, but from mip level 0 to mip level 8. Therefore, the destination has only size 2x2 (not a full block), so the box width/height was only 2, causing the assertion to trigger for src alignment. As far as I can tell, such a copy is completely legal, and because a correct assertion would get ridiculously complicated just get rid of it for good. Reviewed-by: Brian Paul --- diff --git a/src/gallium/auxiliary/util/u_surface.c b/src/gallium/auxiliary/util/u_surface.c index 5abf96625e0..0a79a25a439 100644 --- a/src/gallium/auxiliary/util/u_surface.c +++ b/src/gallium/auxiliary/util/u_surface.c @@ -324,16 +324,8 @@ util_resource_copy_region(struct pipe_context *pipe, /* check that region boxes are block aligned */ assert(src_box.x % src_bw == 0); assert(src_box.y % src_bh == 0); - assert(src_box.width % src_bw == 0 || - src_box.x + src_box.width == u_minify(src->width0, src_level)); - assert(src_box.height % src_bh == 0 || - src_box.y + src_box.height == u_minify(src->height0, src_level)); assert(dst_box.x % dst_bw == 0); assert(dst_box.y % dst_bh == 0); - assert(dst_box.width % dst_bw == 0 || - dst_box.x + dst_box.width == u_minify(dst->width0, dst_level)); - assert(dst_box.height % dst_bh == 0 || - dst_box.y + dst_box.height == u_minify(dst->height0, dst_level)); /* check that region boxes are not out of bounds */ assert(src_box.x + src_box.width <= u_minify(src->width0, src_level));