i965/gen9: Add a condition for starting pixel in fast copy blit
authorAnuj Phogat <anuj.phogat@gmail.com>
Fri, 24 Jul 2015 21:52:01 +0000 (14:52 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Mon, 28 Sep 2015 22:00:53 +0000 (15:00 -0700)
This condition restricts the use of fast copy blit to cases
where starting pixel of src and dst is oword (16 byte) aligned.

Many piglit tests (if using fast copy blit in Mesa) failed earlier
because I missed adding this condition.Fast copy blit is currently
enabled for use only with Yf/Ys tiling.

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
src/mesa/drivers/dri/i965/intel_blit.c

index 9184ad62e34a86cfdd2ffd6e917d8ce8b53c5bb3..46fccc8d6ced630baa54ec8332a00e7c1703de94 100644 (file)
@@ -420,6 +420,10 @@ can_fast_copy_blit(struct brw_context *brw,
        dst_tr_mode == INTEL_MIPTREE_TRMODE_NONE)
       return false;
 
+   /* The start pixel for Fast Copy blit should be on an OWord boundary. */
+   if ((dst_x * cpp | src_x * cpp) & 15)
+      return false;
+
    /* For all surface types buffers must be cacheline-aligned. */
    if ((dst_offset | src_offset) & 63)
       return false;