i965: Add more stringent blitter assertions
authorBen Widawsky <benjamin.widawsky@intel.com>
Tue, 23 Dec 2014 21:59:16 +0000 (13:59 -0800)
committerBen Widawsky <benjamin.widawsky@intel.com>
Sat, 7 Feb 2015 16:08:59 +0000 (08:08 -0800)
Blits to or from a y-tiled surface must always be a multiple of the tile size.
From page 16 of the HSW PRM
(https://01.org/linuxgraphics/sites/default/files/documentation/intel-gfx-prm-osrc-hsw-memory-views.pdf#16)
"The pitch of a tiled enclosing region must be an integral number of tile
widths"

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/intel_blit.c

index e919528894a027cb411a515a235dfb8012282932..9500bd70e8142e37372a6af6fb1d6246031a28f0 100644 (file)
@@ -307,6 +307,9 @@ intelEmitCopyBlit(struct brw_context *brw,
    if ((dst_y_tiled || src_y_tiled) && brw->gen < 6)
       return false;
 
+   assert(!dst_y_tiled || (dst_pitch % 128) == 0);
+   assert(!src_y_tiled || (src_pitch % 128) == 0);
+
    /* do space check before going any further */
    do {
        aper_array[0] = brw->batch.bo;