i965: Round copy size to the nearest block in intel_miptree_copy
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 13 May 2017 18:02:22 +0000 (11:02 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 26 May 2017 14:58:01 +0000 (07:58 -0700)
The width and height of the copy don't have to be aligned to the block
size if they specify the right or bottom edges of the image.  (See also
the comment and asserts right above).  We need to round them up when we
do the division in order to get it 100% right.

Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "17.0 17.1" <mesa-stable@lists.freedesktop.org>
src/mesa/drivers/dri/i965/intel_blit.c

index 568ed5415289943b128f2ad096e8b1cb5e9b21c1..2925fc2c14fac8af22ea6b0f6d8c0a1da0c4b8ad 100644 (file)
@@ -411,8 +411,8 @@ intel_miptree_copy(struct brw_context *brw,
 
       src_x /= (int)bw;
       src_y /= (int)bh;
-      src_width /= (int)bw;
-      src_height /= (int)bh;
+      src_width = DIV_ROUND_UP(src_width, (int)bw);
+      src_height = DIV_ROUND_UP(src_height, (int)bh);
    }
    src_x += src_image_x;
    src_y += src_image_y;